Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Petla - Limit x,y
Forum PHP.pl > Forum > Bazy danych > MySQL
fernet
Witam, robie przewijana liste zdjec z prawej do lewej i z lewej do prawej w petli... i uzyskalem ten efekt poprzez odczytanie z bazy wszystkich bioracych w tym udzal zdjec... ktore laduje do tablicy w js i podmieniam w odpowiednim porzadku wrtosci dov'ow... i wszystko pieknie ladnie smiga jednakze skrypt js obslugujacy ten cyrk w moim wykonaniu przechowuje tablice jak i kilka innych zmiennych globalnie... co wywoluje pewne obciazenia i chcialbym to zlikwidowac... przychodzi mi do glowy PHP no i db z porcjowanie danych w kolejnych zapytaniach mysql z czym pojawia sie probblem... wyglada to mnijwiecej tak odpytuje kolejno "...LIMIT 1,4", "...LIMIT 2,5", "...LIMIT 3,6", "...LIMIT 4,7" itd... co sie jakos tam sprawdza jednak bez petli... tzn jak rekordy sie koncza to w miejscach pustych w bardzo logiczny sposob pojawiaja sie puste wartosci mi jednak zalezaloby na tym aby te puste wartosci zastepowane byly wartosciami poczatkowymi tj

W bazie mam 9 rekordow a wyswietlacz obejmuje 4 pozycje


zatem

pierwsze zapytanie "next" bedze opatrzone wartoscia (...LIMIT 2,5) i smiga
drugie zapytanie "next" bedze opatrzone wartoscia (...LIMIT 3,6) i smiga
trzecie zapytanie "next" bedze opatrzone wartoscia (...LIMIT 4,7) i smiga
czwarte zapytanie "next" bedze opatrzone wartoscia (...LIMIT 5,8) i smiga
piate zapytanie "next" bedze opatrzone wartoscia (...LIMIT 6,9) i smiga
szoste zapytanie "next" bedze opatrzone wartoscia (...LIMIT 7,10) i dupa zbita

Co jest bardzo logiczne jednak moja swiadomosc podopowiada mi ze da sie uzyskac w jakis sposob taka petle i tam gdze juz nie ma wiecej rekordow da sie jakos zmusic db do wywalenia rekordow z poczatkowej puli tj tam gdze 10 ktrego nie ma wskoczy 1, tam gddze 11 i go nie ma wskoczy 2... itd az do maksymalnej liczby obslugiwanej przez procesor no a pozniej moze sie pierdyknac i mi to juz nie bedze przeszkadzalo smile.gif

Tzn ja juz to mam w js, ale tam jest leniwy interpreter i owszem moge ten cyrk odstawic w php gdze juz z kazdym wywolaniem bede odpytywal jak idiota baze danych o wszystkie rekordy z czego wybiore tylko 4 co tez nie jest jakos specjalnie wyrafinowanym rozwiazaniem. Szukam sprytnego zapytania sql z LIMIT x,y ktore sie zapetli jak zajdze taka potrzeba...

Za pomoc i zainteresownia z gory dziekuje...
erix
A nie lepiej zrobić coś w stylu karuzeli po stronie klienta...?

Cytat
tak odpytuje kolejno "...LIMIT 1,4", "...LIMIT 2,5", "...LIMIT 3,6", "...LIMIT 4,7"

Chyba Ci się pomyliła składnia, bo LIMIT nie działa tak, jak tutaj piszesz. winksmiley.jpg
fernet
no tak masz racje porabalo mi sie w to ma byc kolejno

LIMIT 1,4
LIMIT 2,4

itd...

ale nie o to chodzi i mam juz karuzele po stronie klienta jednak chce z niej zrezygonowac bo korzysta ona ze zmiennych jak i tablicy zdeklarowanej globalnie... a ja nie chce miec takich pierdol globalnie nie chce tez miec zapytan bez limitow...
Mchl
Kombinowanie:

Zakładam, że ilość zdjęć nie zmienia Ci się z sekundy na sekundę. W takim wypadku możesz sobie za pierwszym razem pobrać ile masz wszystkich zdjęć (czy to przez COUNT() czy przez SQL_CALC_FOUND_ROWS) i zapisać na przykład w sesji. Przy kolejnych odwołaniach sprawdzasz, czy limit nie wykracza Ci poza ten zakres, a jeżeli tak to robisz unię dwóch selectów - jednego z końca zakresu, drugiego z początku...
zegarek84
to co powyżej lub...
Cytat(fernet @ 10.02.2010, 00:57:48 ) *
ale nie o to chodzi i mam już karuzele po stronie klienta jednak chce z niej zrezygonowac bo korzysta ona ze zmiennych jak i tablicy zdeklarowanej globalnie... a ja nie chce mieć takich pierdol globalnie...

heh - jest na to sposób ;p - nie definiuj tego globalnie a prywatnie ^^ - poczytaj o zasięgu zmiennych w javascript (oraz deczko o programowaniu obiektowym - nad wyraz mocno w brew pozorom akurat js jest obiektowy winksmiley.jpg ) i nagle się okaże, że można tak to napisać, iż globalnie będziesz miał samo minimum winksmiley.jpg - ba - nawet dodam, iż można zrobić tak, by ani jedna zmienna oraz ani jedna funkcja nie wylądowała do globalnego obiektu window (ale to już bardziej ciekawostka winksmiley.jpg )
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.