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) :
Pomysł? Zmienić strukturę bazy bo masz spiep... na maksa.
Jeżeli już jednak nie możesz to:
- pobierasz nazwy tabel
- w pętli foreach dodajesz sobie coś w deseń:
$tables = http://www.php.net/array(); foreach($tabs as $tab){ $tables[] = "SELECT rating FROM {$tab} WHERE xxx"; } $sql = http://www.php.net/implode("\n UNION \n", $tables); // i tu wykonujesz wygenerowane zapytanie SQL
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)
" zamiast '
Jezuuu "czeski błąd"
Wiedziałem, że utknąłem na jakiejś bzdecie.
Dziękuję - zabieram się za testy.
Zrobiłem troszkę inaczej i działa!
Ty wykonujesz 1000 zapytań, a u mnie tylko 1
Tylko, że jego zapytania się wykonają. Twoje niekoniecznie.
SQLite ma limit 500 SELECTów w jednym zapytaniu.
Tego nie wiedziałem Ale człowiek uczy się całe życie.
Poza tym nic nie stoi na przeszkodzie żeby porozbijać te zapytanie po np. 200 czy tam 100 i tyle.
Skrypcik działa i śmiga pięknie - myślałem, że będzie zamulał itp ale jest ok.
Chodziło o ustawienie w rosnącej kolejności tych stu pozycji (z 1140) wg. oceny użytkowników (ilości gwiazdek).
http://seriale-asd.pl/ranking_najlepszy_serial.php
Dzięki jeszcze raz za pomoc i natchnienie
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)