Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] Petla - Limit x,y
fernet
post
Post #1





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 22.03.2007

Ostrzeżenie: (0%)
-----


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...

Ten post edytował fernet 9.02.2010, 17:45:45


--------------------
Czy sprzedal sie juz czy dopiero ma? Oto pytanie, ktore stawiam wam. A czemu gdy byl, to nic tylko spal? Ze mna co lubie go gadac nic nie chcial. A czemu to gra, a tamtego nie. Chyba nas wszystkich nic nie szanuje. Jaki byl kiedy pil? Jaki byl kiedy gral? Czy to ten czlowiek sam czy moze rozni dwaj?
Go to the top of the page
+Quote Post
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




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


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
fernet
post
Post #3





Grupa: Zarejestrowani
Postów: 91
Pomógł: 1
Dołączył: 22.03.2007

Ostrzeżenie: (0%)
-----


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...

Ten post edytował fernet 10.02.2010, 01:59:33


--------------------
Czy sprzedal sie juz czy dopiero ma? Oto pytanie, ktore stawiam wam. A czemu gdy byl, to nic tylko spal? Ze mna co lubie go gadac nic nie chcial. A czemu to gra, a tamtego nie. Chyba nas wszystkich nic nie szanuje. Jaki byl kiedy pil? Jaki byl kiedy gral? Czy to ten czlowiek sam czy moze rozni dwaj?
Go to the top of the page
+Quote Post
Mchl
post
Post #4





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

Ostrzeżenie: (0%)
-----


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...
Go to the top of the page
+Quote Post
zegarek84
post
Post #5





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


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 )

Ten post edytował zegarek84 10.02.2010, 14:46:59


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:18