Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: stronicowanie listy danych z bazy
Forum PHP.pl > Forum > PHP
driv
Witam mam mały problem z poniższym skryptem, zrobiłem sobie stronicowanie wyników tak aby na jednej stronie było max 5 rekordów. Ale jak zrobić aby pod rekordami były numerki przenoszące do odpowiednich stron ? Bo aktualnie manipuluje adresem aby je zobaczyć page=1, page=2 itp

Kod
$ilosc=5;
$page=intval($_GET['page']);
$r=mysql_query('SELECT `id`, `xxx`, `xxx2`, `xxx3` FROM baza_xxx ORDER BY xxx LIMIT '.$page*$ilosc.','.$ilosc.';');
while($row = mysql_fetch_assoc($r)) {
echo '<a href="bazz.php?id='.$row['id'].'">'.$row['tytul'].'<br>';
}
tehaha
musisz dodatkowo oddzielnym zapytaniem pobrać liczbę wszystkich rekordów, podzielić przez $ilość, i wtedy otrzymasz liczbę podstron, potem w pętli np. pętlą for() dla każdej podstrony robisz oddzielny link w, którym przekażesz wartość $page

@DOWN: chciałeś pomocy, czy czekasz na gotowca?
1. Pobrać ilość wszystkich rekordów, np. przy pomocy COUNT() lub mysql_num_rows()
2. trzeba obliczyć ile będzie stron z wynikami czyli -> (ilość wszystkich rekordów / ilość rekordów na stronę) = ilość podstron
3. for($i=1;$i<=ilość_podstron;++$i){ link z paramtetrem php?page=$i }

p.s. to jest łatwe ale trzeba nad tym trochę posiedzieć i zrozumieć jak to ma działać a nie, że jak w 5min się nie uda to się poddajesz i czekasz, aż ktoś zrobi za Ciebie
driv
Gdyby to dla mnie było takie łatwe to bym to zrobił bez pisania na forum, nie kapuję jak ma kod wyglądać bo jestem bardzo zielony w temacie
fander
No więc tak:

  1. $ilosc = 5;
  2. $podstron = 0;
  3. if(isset($_GET['page'])) $page = $_GET['page'];
  4. else $page = 0;
  5.  
  6. $od = $page * $ilosc;
  7.  
  8. $iloscRekordowSql = 'SELECT CEIL(COUNT(*)/'.$ilosc.') AS ilosc FROM baza_xxx';
  9.  
  10. $rekordySQL = 'SELECT `id`, `xxx`, `xxx2`, `xxx3` FROM baza_xxx ORDER BY xxx LIMIT '.$od.','.$ilosc;
  11. $rekordy = mysql_query($rekordySQL);
  12.  
  13. while($rekord = mysql_fetch_assoc($rekordy)){
  14. echo '<div>
  15. <table>
  16. <tr>
  17. <td>'.$id.'</td>
  18. <td>'.$xxx.'</td>
  19. <td>'.$xxx2.'</td>
  20. <td>'.$xxx3.'</td>
  21. </tr>
  22. </table>
  23. </div>';
  24. }
  25.  
  26. $ilosc = mysql_query($iloscRekordowSql);
  27. $ilosc = mysql_fetch_assoc($ilosc);
  28. $ilosc = $ilosc['ilosc'];
  29.  
  30. //Generujemy linki z podstronami
  31. echo '<div class="strony">';
  32. for($i = 0; $i < $ilosc; $i++){
  33. echo '<a href="?page='.($i+1).'" title="">'.($i+1).'</a>';
  34. }
  35. echo '</div>';
piotr94
polecam paginator3000, podajesz w nim po stronie JS liczbę wszystkich stron, prefix (czyli http://serwer/plik.php?page=), ilość stron po której przekroczeniu dodawany jest scrollbar oraz aktualną stronę. Działa świetnie, a najlepszy przykład jaki to dobry skrypt to jego wykorzystanie na stronie http://demotywatory.pl
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.