Stronicowanie - Pager

2012-01-02 19:20:23 Post #1 Evinek

 
Witam.
Na razie stronki jako tako nie robię lecz eksperymentuje.

Otóż ciekawią mnie dwie rzeczy.
Otóż, po pierwsze:
1
SELECT * FROM zapowiedzi ORDER BY DATE DESC LIMIT 5 OFFSET 5

pokaże mi 5 zapowiedzi nie pierwszych lecz pięć dalszych (chyba wiadomo o co chodzi).


1
SELECT * FROM zapowiedzi ORDER BY DATE DESC LIMIT 5,5

Ten kod zrobi dokładnie to samo.

Czym to się różni? Sprawdzając czas(serwer XAMPP mam na pendrive) był podobny - około 0,001 (czasami wskakiwało 0,0006-0,0008).
Przy okazji dodatkowe pytanie, czy pendrive może spowolnić serwer (do testów używany jest)?
Na pendrive używam bo czasami w szkole się bawię. ;p

Co do drugiego pytania to czy taki kod będzie dobry do pager'a?:
1
2
3
4
5
6
7
8
9
if(isset($_GET['page'])){
$page $_GET['page'];
}
if(
$page == 1){
$page 0;
}
$page 5*$page;
$zapytanie "SELECT * FROM zapowiedzi ORDER BY DATE DESC LIMIT $page,5";


Narazie na zabezpieczenia proszę nie patrzeć (których prawie brak) bo nie o to w tym chodzi.


Z góry dziękuje i pozdrawiam, Paweł.

2012-01-03 07:57:12 Post #2 nospor

 
LIMIT 5 OFFSET 5
LIMIT 5,5
Jedno z drugim jest równoważne. Ja używam drugiej wersji bo jest krótsza.

if($page == 1){
$page = 0;
}

A co będzie na stronie drugiej albo trzeciej ?

2012-01-05 21:32:51 Post #3 Evinek

 
Starsze zapowiedzi.
Powiedzmy mamy zapowiedzi:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10.
Przy page 0 lub 1 pokaże
5-10
A przy 2
1-5.
Jakoś tako działa.

@EDIT:
Aa, źle prześledziłem kodzik.
Czyli tam powinno być:
1
2
3
4
5
6
7
8
9
if(isset($_GET['page'])){ 
$page $_GET['page']; 
}
if(
$page == 0){
$page 1;
}
$page 5*($page-1); 
$zapytanie "SELECT * FROM zapowiedzi ORDER BY DATE DESC LIMIT $page,5"


Teraz działa dobrze.
Dobry więc ten kod jest dobry czy lepiej inaczej to zrobić?
I jeszcze raz zapytam, czy serwer apache(xampp) na pendrive spowalnia działanie? (chodzi o czas wykonywania zadań)

@EDIT2:
Pozwoiliłem sobie podbić aby uzyskać odpowiedź.
Przepraszam.

2012-01-05 21:37:29 Post #4 nospor

 
Teraz po poprawce jest lepiej. Nie pisałem wcześniej bo z takim przekonaniem odpowiedziałeś na moją aluzję, że nie chciałem ci się już wtrącać.

Co do apacha na pendrive to z definicji wszystko co jest odpalane na pendrive działa wolniej.

Odpowiedz