Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] paginacja,pager
Forum PHP.pl > Forum > Przedszkole
gigzorr
Witam. Znalazlem sobie na necie skrypt paginacji, i teraz mam maly problemik z wdrozeniem tego.
Oto skrypt:
  1. <?php
  2.  
  3. // db passy
  4. $tbl_name="rejestracja"; //your table name
  5. // How many adjacent pages should be shown on each side?
  6. $adjacents = 3;
  7.  
  8. /*
  9. First get total number of rows in data table.
  10. If you have a WHERE clause in your query, make sure you mirror it here.
  11. */
  12. $query = "SELECT COUNT(*) as num FROM $tbl_name";
  13. $total_pages = mysql_fetch_array(mysql_query($query));
  14. $total_pages = $total_pages[num];
  15.  
  16. /* Setup vars for query. */
  17. $targetpage = "pagination.php"; //your file name (the name of this file)
  18. $limit = 3; //how many items to show per page
  19. $page = $_GET['page'];
  20. if($page)
  21. $start = ($page - 1) * $limit; //first item to display on this page
  22. else
  23. $start = 0; //if no page var is given, set start to 0
  24.  
  25. /* Get data. */
  26. $sql = "SELECT nick_z_gry FROM $tbl_name LIMIT $start, $limit";
  27. $result = mysql_query($sql);
  28.  
  29. /* Setup page vars for display. */
  30. if ($page == 0) $page = 1; //if no page var is given, default to 1.
  31. $prev = $page - 1; //previous page is page - 1
  32. $next = $page + 1; //next page is page + 1
  33. $lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up.
  34. $lpm1 = $lastpage - 1; //last page minus 1
  35.  
  36. /*
  37. Now we apply our rules and draw the pagination object.
  38. We're actually saving the code to a variable in case we want to draw it more than once.
  39. */
  40. $pagination = "";
  41. if($lastpage > 1)
  42. {
  43. $pagination .= "<div class=\"pagination\">";
  44. //previous button
  45. if ($page > 1)
  46. $pagination.= "<a href=\"$targetpage?page=$prev\">Poprzednia</a>";
  47. else
  48. $pagination.= "<span class=\"disabled\">Poprzednia</span>";
  49.  
  50. //pages
  51. if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
  52. {
  53. for ($counter = 1; $counter <= $lastpage; $counter++)
  54. {
  55. if ($counter == $page)
  56. $pagination.= "<span class=\"current\">$counter</span>";
  57. else
  58. $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
  59. }
  60. }
  61. elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
  62. {
  63. //close to beginning; only hide later pages
  64. if($page < 1 + ($adjacents * 2))
  65. {
  66. for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
  67. {
  68. if ($counter == $page)
  69. $pagination.= "<span class=\"current\">$counter</span>";
  70. else
  71. $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
  72. }
  73. $pagination.= "...";
  74. $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
  75. $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";
  76. }
  77. //in middle; hide some front and some back
  78. elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
  79. {
  80. $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
  81. $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
  82. $pagination.= "...";
  83. for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
  84. {
  85. if ($counter == $page)
  86. $pagination.= "<span class=\"current\">$counter</span>";
  87. else
  88. $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
  89. }
  90. $pagination.= "...";
  91. $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
  92. $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";
  93. }
  94. //close to end; only hide early pages
  95. else
  96. {
  97. $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
  98. $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
  99. $pagination.= "...";
  100. for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
  101. {
  102. if ($counter == $page)
  103. $pagination.= "<span class=\"current\">$counter</span>";
  104. else
  105. $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
  106. }
  107. }
  108. }
  109.  
  110. //next button
  111. if ($page < $counter - 1)
  112. $pagination.= "<a href=\"$targetpage?page=$next\">Nastepna</a>";
  113. else
  114. $pagination.= "<span class=\"disabled\">Nastepna </span>";
  115. $pagination.= "</div>\n";
  116. }
  117. ?>
  118.  
  119. <?php
  120. echo '<p style="font-family:Arial;font-size:14px;margin-top:-5px;">Lista zarejestrowanych użytkowników:</p>';
  121. while($row = mysql_fetch_array($result,MYSQL_ASSOC))
  122. {
  123. printf("<div style='margin:auto;'>
  124. <table border='1' style='font-size:13px;font-family:Verdana;border-color:black;border-width:1px;'>
  125. <tr>
  126. <td style='font-size:12px;color:black;width:120px;'>Nick z gry:</td> <td style='width:400px;color:white;' class='td'><a href='index.php?page=profil&nick_z_gry=$row[nick_z_gry]'>$row[nick_z_gry]</td></a>
  127. </tr>
  128. </table>
  129. </div>
  130.  
  131. ", $row[nick_z_gry]);
  132. }
  133. echo '<p style="font-size:11px;color:white;margin-top:10px;">Kliknij na użytkownika aby zostać przekierowanym na jego profil.</p>';
  134. ?>
  135.  
  136. <?=$pagination?>


Skrypt dziala jak nalezy , ladnie tworzy strony , ale teraz chce to wdrozyc do podstrony np. mam
mojastrona.pl/lista-uzytkownikow

i po wejsciu na ta strone ma sie wyswietlac ten skrypt , lecz tak nie jest , oto blad:
Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/graczepo/public_html/pagination.php on line 159

Chociaz skrypt dziala jak nalezy , wiec ten blad jest generowany bo cos jest nie tak z linkami.
Tutaj:
  1. $targetpage = "pagination.php"; //your file name (the name of this file)


podalem adres strony , i po wejsciu np. na strona.pl/pagination.php - paginacja dziala jak nalezy , ale po wejsciu na strona.pl/lista-uzytkownikow juz nie dziala , probowalem zamienic to:
  1. $targetpage = "pagination.php"

na lista-uzytkownikow , oraz za pomoca htaccessa zrobilem lista-uzytkownikow.php ale dalej nie dziala.
wookieb
Temat: Jak poprawnie zadac pytanie
lord2105
możeszs pokazać kod strony strona.pl/lista-uzytkownikow ?
askone
Hej

A gdzie ustawiasz zmienną $result? Wykorzystujesz ją później w tym fragmencie:
  1. while($row = mysql_fetch_array($result,MYSQL_ASSOC)){...}


Zrób var_dump i zobacz co tam się kryje smile.gif
gigzorr
Cytat(wookieb @ 20.08.2010, 13:58:23 ) *


nie rozumiem?problem opisalem poprawnie , all co potrzebne podalem.

Cytat(lord2105 @ 20.08.2010, 13:59:08 ) *
możeszs pokazać kod strony strona.pl/lista-uzytkownikow ?


to jest ten kod wyzej.

Cytat(askone @ 20.08.2010, 13:59:49 ) *
Hej

A gdzie ustawiasz zmienną $result? Wykorzystujesz ją później w tym fragmencie:
  1. while($row = mysql_fetch_array($result,MYSQL_ASSOC)){...}


Zrób var_dump i zobacz co tam się kryje smile.gif

  1. $sql = "SELECT nick_z_gry FROM $tbl_name LIMIT $start, $limit";
  2. $result = mysql_query($sql);
wookieb
Cytat(gigzorr @ 20.08.2010, 14:00:22 ) *
nie rozumiem?problem opisalem poprawnie , all co potrzebne podalem.

Przeczytaj CAŁY post.
gigzorr
do zamkniecia , przerobilem go pod siebie i zadzialal , pomiedzy page , page byl konflikt , poprostu zle ulozony byl link.
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.