Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Stronnicowanie
Forum PHP.pl > Forum > Przedszkole
marcin0077
Witam

Mam taki kod:

  1. $obecna = $_GET['strona'];
  2. $promien = 5;
  3. $wykonaj = mysql_query("SELECT * FROM argue WHERE waiting = '0'");
  4. $max=mysql_num_rows($wykonaj)/5;
  5.  
  6.  
  7. for($i=$obecna-$promien; $i<$obecna+$promien; $i++) {
  8. if($i<1 || $i>$max)
  9. continue;
  10. $addClass = ($obecna == $i) ? '_obecna' : '';
  11. echo '<a class="strona'.$addClass.'" href="page/'.$i.'">'.$i.'</a>';
  12. }


Wygląda to tak: jeśli mam 5 postów to pokaże 1 stronę, jeśli 10 - 2, jeśli 15 - 3 strony ale jeśli mam np 11,12,13,14 postów to nadal pokazuje 2 strony a powinny być 3 (5+5+x). Nie bierze reszty z dzielenia pod uwagę. Tylko jak ukaże się 5 postów to wtedy pojawi się kolejna strona.

Proszę o pomoc
peter13135
ceil
marcin0077
dzięki, chyba działa.
nospor
Taka drobna uwaga:
Cytat
$wykonaj = mysql_query("SELECT * FROM argue WHERE waiting = '0'");
$max=mysql_num_rows($wykonaj)/5;

Wiesz co ten kod robi? Ten kod pobiera z bazy milion rekordów tylko po to, by policzyć ile ich jest. Totalnie nieoptymalne.
Liczenie rekordów pozostawia się bazie poprzez konkstrukcję:
select count(*) from tabela

Poczytaj o stronicowaniu, masa tego na forum, może nabierzesz lepszych nawyków.
marcin0077
dodałem
  1. $q = mysql_query("SELECT COUNT * FROM argue WHERE waiting = '0'");


Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home.312/.../.../includes/pages.php on line 24

Co robię źle?
Hpsi
zrób sobie echo mysql_error();
nospor
zobacz jak ja napisałem COUNT a jak ty napisałeś COUNT
marcin0077
poprawiłem ale zamiast liczby zwraca mi "array" próbowałem z mysql_fetch_array i mysql_fetch_assoc
nospor
array - tablica.
Funkcje których używasz zwracają właśnie tablicę. Z tej tablicy masz wyciągnąc to co cię interesuje
marcin0077
Kod wygląda tak, działa więc chyba jest dobrze
  1. $obecna = $_GET['strona'];
  2. $promien = 5;
  3. $q = mysql_query("SELECT count(*) AS id FROM argue WHERE waiting = '0'");
  4.  
  5. $max=ceil($q2['id']/5);
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.