Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> stronicowanie listy danych z bazy
driv
post 2.09.2010, 17:24:59
Post #1





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

Ostrzeżenie: (0%)
-----


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>';
}
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
tehaha
post 2.09.2010, 17:41:35
Post #2





Grupa: Zarejestrowani
Postów: 1 748
Pomógł: 388
Dołączył: 21.08.2009
Skąd: Gdynia

Ostrzeżenie: (0%)
-----


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

Ten post edytował tehaha 2.09.2010, 18:07:27
Go to the top of the page
+Quote Post
driv
post 2.09.2010, 18:00:03
Post #3





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 31.08.2010

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
fander
post 3.09.2010, 10:20:49
Post #4





Grupa: Zarejestrowani
Postów: 231
Pomógł: 22
Dołączył: 6.10.2008

Ostrzeżenie: (0%)
-----


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>';


Ten post edytował fander 3.09.2010, 10:25:30
Go to the top of the page
+Quote Post
piotr94
post 3.09.2010, 15:09:06
Post #5





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.07.2025 - 16:36