Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z podzialem na podstrony
Forum PHP.pl > Forum > Przedszkole
koszar
witam!
napisalem pewno wyszukiwarke i chcialem napisać dzielenie na strony

  1. <?php
  2.  
  3. $where = trim(strip_tags($_GET[q])); // _GET[q] = zapytanie
  4. $bywhat = trim(strip_tags($_GET[s])); // _GET[s] = sortowanie
  5. $page = trim(strip_tags($_GET[p])); // _GET[s] = strona wynikow
  6. $wspolczynnik = &#092;"20\"; // ilosc rekordow na jednej stronie
  7.  
  8. switch($bywhat) {
  9. case r: $sort=&#092;"aaaa\"; $type=\"DESC\"; break;
  10. case n: $sort=&#092;"bbbb\"; $type=\"ASC\"; break;
  11. }
  12.  
  13. if($page==0)
  14. $pageTyl = 0;
  15. else
  16. $pageTyl = $wspolczynnik*$page-$wspolczynnik;
  17.  
  18. if($page==0)
  19. $pagePrzod = $wspolczynnik-1;
  20. else
  21. $pagePrzod = $page*$wspolczynnik-1;
  22.  
  23. $zapytanie = &#092;"SELECT * FROM tabela WHERE (pole1 LIKE '%$where%') OR (pole2 LIKE '%$where%') OR (pole3 LIKE '%$where%') ORDER BY $sort $type LIMIT $pageTyl,$pagePrzod\";
  24.  
  25. ?>


pomijam juz polaczenie z baza wkonanie zapytania, itd.....

sterowanie stronami wyników odbywa sie przez zmienna $page , potem tam sie przelicza dolna i górna granica LIMIT....
z tego co widze to limit wykouje się poprawnie, ale na kolejnych podstronach $page=2, $page=3, itd. na stronie zamiast 20 wyników wyświetlają się kolejno 40, 60, 80 mimo, że limit wskazuje np. LIMIT 20,39 lub LIMIT 40,59

nie wiem... może coś sam źle zrobilem... może czegoś nie uwzględnilem.... macie jakieś pomysly ?

pozdr. smile.gif
Kuziu
Może Ci dam przyklad mojego kodu .. może to Ci pomoże ...

  1. <?php
  2.  
  3. $per_page = 20; // 20 na strone
  4. if(!$page){$page=0;}else{$page--;} // jeśli nie ma podanego to 0 jeśli jest to odejmij 1 ... liczymy od zera
  5.  
  6. $od=$page*$per_page; // mnożenie przez ilośc na storne
  7.  
  8. $sql =&#092;"SELECT * FROM news ORDER by time DESC LIMIT $od,$per_page\";
  9. $result =@mysql_query($sql,$connection) or die(&#092;"Wykonanie zapytania niepowiodło się\");
  10.  
  11. ?>
czachor
Cytat
wyświetlają się kolejno 40, 60, 80 mimo, że limit wskazuje np. LIMIT 20,39 lub LIMIT 40,59
  1. LIMIT pozycja_startowa, ile_kolejnych
czyli
  1. LIMIT 20, 10
wybierze Ci 10 kolejnych wpisów zaczynając od 20go...
ile_kolejnych to nie jest numer ostatniej pozycji, ale przesunięcie,
koszar
to wszystko wyjaśnia.... skrypt byl dobry ! potem już kombinowalem z nim tylko przez to, że źle skonstruowalem zapytanie sql.

DZIEKI WIELKIE ! 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.