Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]paginacja / strony - problem
Forum PHP.pl > Forum > Przedszkole
Th0e
Witam! Oto mój kod paginacji na stronie, która działaniem jest dość podobna do stron typu kwejk, demotywatory itp.

  1. function strony()
  2. {
  3. $ile_wrzuconych = mysqli_num_rows(mysqli_query($GLOBALS['db'], "SELECT * FROM `wrzucone`"));
  4.  
  5. if($ile_wrzuconych>10 && !isset($_GET['action']) && !isset($_GET['video']) && !isset($_GET['profil']))
  6. {
  7. $ile_ma_byc_stron=ceil($ile_wrzuconych / 10);
  8.  
  9. if(!isset($_GET['str']) OR $_GET['str']<11)
  10. {
  11. $liczba=1;
  12.  
  13. echo '<center><div id="interface">Przejdź do strony: &nbsp;&nbsp;';
  14. while($liczba !==21)
  15. {
  16. echo'<a href="?str='. $liczba .'">'. $liczba .'</a>&nbsp;&nbsp;';
  17. $liczba++;
  18. }
  19. echo'</div></center>';
  20. }
  21. else
  22. {
  23.  
  24. $liczba=$_GET['str']-10;
  25. $do = $liczba+21;
  26.  
  27. echo '<center><div id="interface">Przejdź do strony: &nbsp;&nbsp;';
  28.  
  29. if($do < $ile_ma_byc_stron)
  30. {
  31. while($liczba !==$do)
  32. {
  33. echo'<a href="?str='. $liczba .'">'. $liczba .'</a>&nbsp;&nbsp;';
  34. $liczba++;
  35. }
  36. }
  37. else
  38. {
  39. $do = $ile_ma_byc_stron;
  40. while($liczba !==$do)
  41. {
  42. echo'<a href="?str='. $liczba .'">'. $liczba .'</a>&nbsp;&nbsp;';
  43. $liczba++;
  44. }
  45. }
  46.  
  47. echo'</div></center>';
  48. }
  49. }
  50. }


Problem jest w tym że kiedy dochodzi do wykonywania kodu:

  1. else
  2. {
  3. $do = $ile_ma_byc_stron;
  4. while($liczba !==$do)
  5. {
  6. echo'<a href="?str='. $liczba .'">'. $liczba .'</a>&nbsp;&nbsp;';
  7. $liczba++;
  8. }
  9. }


Strona bardzo długo się ładuje i ścina kompa - czyli jakby pętla się nie kończyła, a nie mam pojęcia dlaczego. Prosiłbym o pomoc. Pozdrawiam.
Helid
1. Nie num rows tylko select count(*)
2. Debuguj. Przed pętlą daj
  1. var_dump($do);
  2. var_dump($liczba);
  3. die();
Th0e
Cytat(Helid @ 6.08.2013, 18:35:42 ) *
1. Nie num rows tylko select count(*)
2. Debuguj. Przed pętlą daj
  1. var_dump($do);
  2. var_dump($liczba);
  3. die();



2. Pokazało mi: Przejdź do strony: int(49) int(28)

- strona jest 38, więc powinno wyświetlić od 28 - 49 a tu lipa sad.gif

1. Przepraszam, ale nie wiem jak to zastosować, podałbyś przykład?



----------

Problem rozwiązany. W "wadliwej" pętli zamiast !== dałem <= i wszystko działa jak należy.

Problemu nie ma, ale jeśli ktoś wie dlaczego !== nie działało prosiłbym o wyjaśnienie, bo nie ogarniam ohmy.gif
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.