Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] stronicowanie
Forum PHP.pl > Forum > PHP
ata
Mam w bazie liste uzytkownikow, a poniewaz jest ich duzo chcialem zastosowac stronicowanie. Kod mam nastepujacy

  1. function pobierz_uzytkownikow()
  2. {
  3. $limit = 5;
  4.  
  5. $bd = polacz_bd();
  6. $zapytanie1 = ("SELECT count(*) FROM klienci");
  7. $wynik1 = $bd->query($zapytanie1);
  8. $ilosc = $wynik1->num_rows;
  9.  
  10. $zapytanie = "select login from klienci LIMIT ".$_GET['zakres']*$limit." , ".$limit."";
  11. $wynik = $bd->query($zapytanie);
  12.  
  13. if (!$wynik)
  14. return false;
  15. $ilosc = @$wynik->num_rows;
  16. if ($ilosc ==0)
  17. return false;
  18. $wynik = tablica($wynik);
  19. return $wynik;


  1. function pokaz_strony()
  2. {
  3.  
  4.  
  5. if($_GET['zakres']>0){
  6. echo '<a href="?zakres='.($_GET['zakres']-1).'">Poprzednie</a> ';
  7. }
  8.  
  9. for($i = 0;$i<=floor($ilosc/$limit);$i++){
  10. echo '<a href="?zakres='.($i).'">[ '.($i+1).' ]</a> ';
  11. }
  12.  
  13. if($_GET['zakres']<floor($ilosc/$limit)){
  14. echo ' <a href="?zakres='.($_GET['zakres']+1).'">następne</a>';
  15. }
  16.  
  17. }


Stronicowanie dziala ale nie do konca sad.gif nie wyswietla mi przyciskow [2][3]itd oraz >nastepne<. Komunikaty mam nastepujace:
Warning: Division by zero in C:\Program Files ...\funkcje_admina.php on line 29
[ 1 ]
Warning: Division by zero in C:\Program Files ...\funkcje_admina.php on line 29

Warning: Division by zero in C:\Program Files ...\funkcje_admina.php on line 33

wpisujac recznie np. /formularz_lista_uzytkownikow.php?zakres=1, pokazuje kolejne wyniki poprawnie
Przeanalizowalem kod i nei moge dojsc gdzie mam blad.
seth-kk
wartosc $limit w pokaz_strony() nie jest znana - poczytaj o zasiegu zmiennych
ata
Blad dzielenia przez zero juz nie wystepuje, poprawilem na global $limit; jednak nadal pokazuje tylko pierwsza strone oraz >poprzednie<. Wyglada to tak jakby z zapytania $zapytanie1 = ("SELECT count(*) FROM klienci"); nie pobieral zadnej wartosci sciana.gif
seth-kk
1. o ile tego jeszcze nie poprawiles ilosc tez jest poza zasiegiem
2. count() zwraca jeden rekord wiec dlaczego sprawdzasz wynik przez $db->num_rows
3. dlaczego nadpisujesz $ilosc?
piotr94
przed sprawdzeniem ile jest wszystkich rekordów musisz wywołać zapytanie SELECT id FROM klienci
ata
Wszystko juz gra, dziekuje bardzo wszytkim za pomoc
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.