Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Stronicowanie :(
Forum PHP.pl > Forum > Przedszkole
Kamylexo
Witam napisałem własny skrypt na wyświetlanie rekordów z bazy danych:
  1. <?php
  2. //30 ostatnich śmierci na serwerze
  3.  $sql = mysql_connect($db_host, $db_username, $db_password);
  4.  mysql_select_db($db_name);
  5.  
  6.  $zapytanie = mysql_query("SELECT * FROM deathlist LIMIT 30");
  7.  
  8.  if(mysql_num_rows($zapytanie) > "0") {
  9. while($wiersz = mysql_fetch_row($zapytanie)) {
  10.  echo "$wiersz[4] - <b>$wiersz[0]</b>: Zabity przez $wiersz[1] na $wiersz[3] levelu.";
  11. }
  12.  }
  13. else {
  14.  echo "Lista śmierci jest pusta."; }
  15.  mysql_close($sql);
  16. ?>


Ale jak podpiąć do tego stronicowanie, czytałem pełno poradników ale nie kumam tego :/ w tym skrypcie jest limit do 30 najnowszych rekordów, ale możecie to zmienić. Chcę tylko by ktoś podpiął pod to te głupie stronicowanie.:] Może wtedy lookne co zrobił i skumam jak to się robi haha.gif Z góry thx i pozdrawiam!
nithajasz
http://forum.php.pl/index.php?showtopic=35...0&start=140

Masz fajną klase pagera z przykładami w temacie jak tego użyć.
Kamylexo
Ehh przeczytałem i..., ...dalej nie kumam ;/
No weś mi ktoś pomóż ^^
rzymek01
nie będę pisał gotowca tongue.gif

robisz tak:
// używamy zmiennej $_GET['page'] (chyba wiesz co zawiera.... nr strony jak coś)
// oraz stałej PERPAGE (która np może wynosić 10, czyli 10 rekordów na stronę)

1. Na początku filtrujesz zmienną $_GET['page'], czy jest liczbą i takie tam
2. potem mnożysz PERPAGE i $_GET['page'] i przypisujesz np do $temp i wychodzi ci od którego wpisu trzeba jechać
3. i w zapytaniu używasz LIMIT $temp, PERPAGE (nie zapomnij dobrać apostrofów)
4. i po wsyzstkim tworzysz linki do następnej strony typu ...href="?page='.($_GET['page']+1).'"... i poprzedniej itd itd.
Kamylexo
eee nie wychodzi mi ;/
Spykaj
To smutne sad.gif
nithajasz
  1. <?php
  2. function nawigacja($od, $na_stronie, $lacznie, $link, $wstecz, $dalej, $rozdzielacz) 
  3. { 
  4. $nawigacja=""; 
  5.  
  6. if($od>0) $nawigacja.="<A Href=\"$link&od=". ($od-$na_stronie) ."\">$wstecz</A>$rozdzielacz"; 
  7. $stron=ceil($lacznie/$na_stronie); 
  8. if($stron>1) 
  9. { 
  10. for($strona=0; $strona<$stron; $strona++) 
  11. { 
  12. if($strona<|| $strona>=$stron-|| ($strona>=($od/$na_stronie)-&& $strona<=($od/$na_stronie)+1)) 
  13. { 
  14. if($strona==($od/$na_stronie)) $nawigacja.=" [". ($strona+1) ."] "; 
  15. else $nawigacja.=" <A Href=\"$link&od=". ($strona*$na_stronie) ."\">". ($strona+1) ."</A> "; 
  16. } 
  17. else $nawigacja.="."; 
  18. }  
  19. $nawigacja=ereg_replace("[.]+", "...", $nawigacja); 
  20. } 
  21. if($lacznie>$od+$na_stronie) $nawigacja.="$rozdzielacz<A Href=\"$link&od=". ($od+$na_stronie) ."\">$dalej</A>"; 
  22.  
  23. return $nawigacja; 
  24. }
  25. ?>


nawigacja($od, $na_stronie, $lacznie, $link, $wstecz, $dalej, $rozdzielacz)

$od - od którego wyniku zaczynamy wyświetlanie
$na_stronie - ile wyników na stronie
$lacznie - ile łącznie wyników
$link - jaki adres (z dołączonym &od=*) ma być dla każdego linka do strony
$wstecz - co jest w napisie linku, odnoszącego do poprzedniej strony
$dalej - co jest w napisie linku, odnoszącego do następnej strony
$rozdzielacz - kod HTML, rozdzielający przyciski "Wstecz", "Dalej" i numery stron (np. 1 2 3 ... 17 [18] 19 ... 24 25 26).

Znalezione na google..
Kamylexo
OMG mądrzy to wy nie jesteście..exclamation.gif sciana.gif blinksmiley.gif dry.gif dry.gif
nithajasz
Skoro jesteś mądrzejszy to czemu nas prosisz o pomoc? Bez sens.

Co Ty chcesz dokładnie zrobić?
trucksweb
tu masz rozwiazanie, ktore chyba bedzie najlepsze. Moja funkcja do paginacji, bardzo prosta i dzialajaca winksmiley.jpg
Temat: Paginacja wynikow light
sebekzosw
Zobacz to:

  1. <?php
  2. $sql = mysql_connect($db_host, $db_username, $db_password);
  3. mysql_select_db($db_name);
  4.  
  5. $display = 30;
  6.  
  7. if (isset($_GET['np'])) {
  8. $num_pages = $_GET['np'];
  9. } else {
  10. $row = mysql_fetch_array(mysql_query("SELECT COUNT(*) FROM deathlist"), MYSQL_NUM);
  11. $num_records = $row[0];
  12.  
  13. if ($num_records > $display) {
  14. $num_pages = ceil ($num_records/$display);
  15. } else {
  16. $num_pages = 1;
  17. }
  18. }
  19.  
  20. if (isset($_GET['s'])) {
  21. $start = $_GET['s'];
  22. } else {
  23. $start = 0;
  24. }
  25.  
  26. $result = mysql_query("SELECT * FROM deathlist LIMIT $start, $display");
  27.  
  28. if(mysql_num_rows($result) > "0") {
  29. while($wiersz = mysql_fetch_row($result)) {
  30.  echo "$wiersz[4] - <b>$wiersz[0]</b>: Zabity przez $wiersz[1] na $wiersz[3] levelu.";
  31. }
  32.  } else {
  33.  echo "Lista śmierci jest pusta."; 
  34.  }
  35.  
  36. if ($num_pages > 1) {
  37.  echo "<center><br />";
  38.  
  39. $current_page = ($start/$display) + 1;
  40.  
  41. if ($current_page != 1) {
  42.  echo '<a href="lista_smierci.php?s=' . ($start - $display) . '&np=' . $num_pages . '">Poprzednia</a> ';
  43. }
  44.  
  45. for ($i = 1; $i <= $num_pages; $i++) {
  46. if ($i != $current_page) {
  47. echo '<a href="lista_smierci.php?s=' . (($display * ($i - 1))) . '&np=' . $num_pages . '">' . $i . '</a> ';
  48. } else {
  49. echo "<b>".$i."</b>" . ' ';
  50. }
  51. }
  52.  
  53. if ($current_page != $num_pages) {
  54. echo '<a href="lista_smierci.php?s=' . ($start + $display) . '&np=' . $num_pages . '">Następna</a>';
  55. }
  56.  
  57. echo '</center>';
  58. }
  59.  
  60. ?>


Powinno działać (jak by nie działało zobacz to: http://www.webmasterworld.com/forum88/11585.htm) - powiedz jakie błędy Ci wyskakują ;-)

Dodam, że mi to działa ;-)
Kamylexo
bardzo dziękuje! Dorobiłem zmienne i działa teraz mogę stosować to di wszystkiego winksmiley.jpg guitar.gif
Wyskakuje mi "Lista śmierci jest pusta." ale to dlatego że nie mam narazie rekordów ;]
A przy okazji mogę ci zadać jeszcze jedno pytanie ;D.
Jak zrobić takie coś ( przykładowa strona)
http://tibia.pl/itemslist/shield
Tam jest lista i Pisze coś takiego w nagłówkach tabeli:
Nazwa Obrona Waga
I można kliknąć i segreguje haha.gif A jak coś takiego zrobić pod mysql?
Shili
Zapoznaj się z sqlowym ORDER BY
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.