Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Poprawka paginacji
Forum PHP.pl > Forum > Przedszkole
Raven1122
Witam, doprowadzilem moj skrypt do funkcjonalności:
  1. function news() {
  2. //Ilosc wiadomosci w bazie:
  3. $sql = "SELECT * FROM arena_news";
  4. $query = mysql_query($sql) or die(mysql_error());
  5. $newsow = mysql_num_rows($query);
  6. //Ustawienia pagera
  7. $ile = 5;
  8. $nm = $_GET['page'];
  9. //Wyswietlanie newsow
  10. $offset = $nm*$ile;
  11. $sql = "SELECT * FROM arena_news LIMIT $offset, $ile";
  12. $query = mysql_query($sql) or die(mysql_error());
  13. while($row = mysql_fetch_array($query)){
  14. echo ("<b>");
  15. echo $row['title'];
  16. echo ("</b><br />");
  17. echo ("<small>");
  18. echo $row['info'];
  19. echo ("</small><br />");
  20. echo $row['short'];
  21. echo ("<br /><br />");
  22.  
  23. }
  24. //Strony
  25. for($i=1; $i<=ceil($newsow/$ile); $i++){
  26. echo "<a href='/index.php?page=". $i ."'>[". $i ."]</a>";
  27. }
  28. }


No i co jest zle?
Gdy get page nie jest ustawione to wyswietla sie dobrze lecz:
Ukazuje sie to:
Notice: Undefined index: page in /home/jumpfm/domains/dancearena.pl/public_html/functions.php on line 144
i gdy mage jest ustawiony na 1 pokazuja mi sie newsy od 6 do 10 a chce od 1 do 5
Ktos pomoze? smile.gif Z gory dziekuje

@EDIT
i jeszcze przy okazji
Notice: Use of undefined constant register - assumed 'register' in /home/jumpfm/domains/dancearena.pl/public_html/settings/member_settings.html on line 7
a ta 7 linia to
case register:

switch normalnie jest u gory, dlaczego tak sie dzieje?
wladimirec
Po pierwsze musisz sobie ustawić jakąś domyślną wartość dla zmiennej $nm, wlasnie na wypadek jak nie bedzie podany parametr page.
Po drugie LIMIT działa prawidłowo, bo według Twojego skryptu dla strony nr 1 $offset przyjmuje wartość 5 i zapytanie daje rekordy 6-10, a zeby dawało od początku $offset musi byc 0

zamiast 8 linii spróbuj tak:
  1. $nm = 0;
  2. if ($_GET['page'] > 0) {
  3. $nm = $_GET['page'] - 1;
  4. }


a w przypadku case to jesli register jest zmienną to daj znaczek dolara przed nią, a jesli jest ciągiem znaków to daj w cudzysłowy
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.