Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Paginacja newsow na GET
viamarimar
post
Post #1





Grupa: Zarejestrowani
Postów: 303
Pomógł: 1
Dołączył: 24.09.2011

Ostrzeżenie: (10%)
X----


Mam problem z dzialaniem tej paginacji, wzieta jest niby z jakiegos tutorialu i niby powinna dzialac. Jednak niestety nie dziala, tzn. na kazdej stronie wyswietlaja sie te same wiadomosci. Osoba mądrzejsza odemnie powiedziala ze jest problem limitem. Zmienna $limit?

Jak rozwiazac problem i spwadzic i spowodowac zeby to zaczelo funkcjionowac?
Czy to ze jest to w gecie jakos przeszkadza?

  1. if(isset($_GET['newsy']) && $_GET['newsy']=='pokaz')
  2. {
  3.  
  4. $query = "SELECT COUNT(*) as all_posts FROM news";
  5. $result = mysql_query($query) or die (mysql_error());
  6. $row = mysql_fetch_array($result);
  7. extract($row);
  8.  
  9. $onpage = 2;
  10. $navnum = 7;
  11. $allpages = ceil($all_posts/$onpage);
  12.  
  13. if(!isset($_GET['page']) or $_GET['page'] > $allpages or !is_numeric($_GET['page']) or $_GET['page'] <= 0){
  14. $page = 1;
  15. }else{
  16. $page = $_GET['page'];
  17. }
  18. $limit = ($page - 1) * $onpage;
  19.  
  20. $query = "SELECT * FROM news ORDER BY id DESC LIMIT $limit, $onpage";
  21. $result = mysql_query($query) or die (mysql_error());
  22.  
  23. while($row = mysql_fetch_array($result)){
  24. echo "<h1>".$row['tytul']."</h1>";
  25. echo "<p>".$row['tresc']."</p>";
  26. echo "<hr>";
  27. }
  28.  
  29. if($navnum > $allpages){
  30. $navnum = $allpages;
  31. }
  32.  
  33. $forstart = $page - floor($navnum/2);
  34. $forend = $forstart + $navnum;
  35.  
  36. if($forstart <= 0){ $forstart = 1; }
  37.  
  38. $overend = $allpages - $forend;
  39.  
  40. if($overend < 0){ $forstart = $forstart + $overend + 1; }
  41.  
  42. $forend = $forstart + $navnum;
  43.  
  44. $prev = $page - 1;
  45. $next = $page + 1;
  46.  
  47. $script_name = $_SERVER['SCRIPT_NAME'];
  48.  
  49. echo "<div id=\"nav\"><ul>";
  50. if($page > 1) echo "<li><a href=\"".$script_name."?newsy=pokaz&amp;page=".$prev."\">Poprzednia</a></li>";
  51. if ($forstart > 1) echo "<li><a href=\"".$script_name."?newsy=pokaz&amp;page=?page=1\">[1]</a></li>";
  52. if ($forstart > 2) echo "<li>...</li>";
  53. for($forstart; $forstart < $forend; $forstart++){
  54. if($forstart == $page){
  55. echo "<li class=\"current\">";
  56. }else{
  57. echo "<li>";
  58. }
  59. echo "<a href=\"".$script_name."?newsy=pokaz&amp;page=?page=".$forstart."\">[".$forstart."]</a></li>";
  60. }
  61. if($forstart < $allpages) echo "<li>...</li>";
  62. if($forstart - 1 < $allpages) echo "<li><a href=\"".$script_name."?newsy=pokaz&amp;page=?page=".$allpages."\">[".$allpages."]</a></li>";
  63. if($page < $allpages) echo "<li><a href=\"".$script_name."?newsy=pokaz&amp;page=?page=".$next."\">Następna</a></li>";
  64. echo "</ul></div><div class=\"clear\">";
  65.  
  66. }
Go to the top of the page
+Quote Post

Posty w temacie


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 Aktualny czas: 21.08.2025 - 06:31