Witam.
Od kilku dni próbuje rozgryźć SQLite3 i wertuję net w poszukiwaniu rozwiązania i nic sensownego nie znajduję. Dlatego postanowiłem, poprosić Was, czyli specjalistów o pomoc.
Mam bazę, w której jest blisko tysiąc tabel. W każdej z nich są po trzy kolumny (id, rating,ip) - są więc takie same (znajdują się w nich tylko różne dane).
Chciałbym odczytać i porównać dane ze wszystkich na raz (rekord rating gdzie ip=1).
Nie da się więc przy pomocy UNION bo niby jak? Mam tysiąc razy to powtórzyć? Nie da się też zastosować zmiennej po FROM więc jak?
Najlepiej by było tak: - najpierw pobieram nazwy tabel (name) i od razu pobieram dane z tabel z pola "rating" (gdzie id jest równe 1) :
<?php
try
{
$db = new PDO('sqlite:./rating/database/ratings2.sqlite');
}
catch (PDOException $e)
{
print "Błąd połączenia z bazą!: " . $e->getMessage() . "<br/>";
die();
}
$statement = $db->query('SELECT name FROM sqlite_master UNION SELECT rating FROM name WHERE id="1" ');
foreach($statement as $wiersz)
{
echo(" = ".$wiersz['name']."<br />");
echo(" = ".$wiersz['rating']."<br />");
}
$statement->closeCursor();
?>
Ale to oczywiście nie może działać...
Może więc podmieniać nazwy tabel pod $zmienna i w ten sposób odczytywać pola rating ze wszystkich tabel?
$statement = $db->query('SELECT name FROM sqlite_master UNION SELECT rating FROM $zmienna WHERE id="1" ');
foreach($statement as $wiersz)
{
echo(" = ".$wiersz['name']."<br />");
echo(" = ".$wiersz['rating']."<br />");
$zmienna = $wiersz['name'];
}
Bez szans... - też nie zadziała...
Czy ktoś ma jakiś pomysł? Nie wiem w którym kierunku iść...