![]() |
![]() |
![]()
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ść... |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 5.01.2015 Ostrzeżenie: (0%) ![]() ![]() |
Bardzo dziękuję za odpowiedz.
Bazy nie mogę zmienić (a przynajmniej na razie). Rozumiem o co Ci chodzi i faktycznie tak spróbuję - mam tylko jeden problem z podstawami SQLite3 (a w necie ciężko o podpowiedź). Z SQLite3 dotychczas nie miałem styczności i nie rozumiem, dlaczego niektóre funkcje po prostu nie działają choć powinny. Dlaczego np. to zadziała (alice to nazwa tabeli) Kod $statement = $db->query('SELECT rating FROM alice '); foreach($statement as $wiersz) { echo(" = ".$wiersz['rating']."<br />"); } a to już nie? Kod $i="alice"; $statement = $db->query('SELECT rating FROM {$i} '); foreach($statement as $wiersz) { echo(" = ".$wiersz['rating']."<br />");} Gdy po FROM dodam zmienną to dostaję biały ekran... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 11:06 |