SQLite3 odczyt z ogromnej ilości tabel. |
SQLite3 odczyt z ogromnej ilości tabel. |
5.01.2015, 19:16:36
Post
#1
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 5.01.2015 Ostrzeżenie: (0%) |
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) : Kod <?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? Kod $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ść... |
|
|
Wersja Lo-Fi | Aktualny czas: 24.09.2024 - 14:34 |