Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][MySQL][PHP]Problem ze skryptem paginacji
Forum PHP.pl > Forum > Przedszkole
lukaszk
Witam, mam taki skrypt z pewnej strony i niestety nie działa.
Wrzuciłem tylko go do testowego pliku i zgłasza błąd
Parse error: syntax error, unexpected ';' in C:\Program Files\VertrigoServ\www\stronicowanie22.php on line 5
Nie wiem co jest nie tak ale stoję w miejscu i nie wiem jak to naprawić.
  1. <?php
  2. include('db.php');
  3. $subpage = $_GET['page'];
  4. $perPage = 5;
  5. if (!empty($_GET['subpage']) &amp;&amp; (is_numeric($_GET['subpage'])))
  6. {
  7. $subpage = (int) $_GET['subpage'];
  8. }
  9. if ($subpage < 1)
  10. {
  11. $subpage = 1;
  12. }
  13. $start = ($subpage - 1) * $perPage;
  14. $max_zapytanie = 'SELECT id_komenta FROM komentarze WHERE id_komenta';
  15. $idzapytania = mysql_query($max_zapytanie);
  16. if(mysql_real_escape_string((!isset($_GET['id'])) or empty($_GET['id'])))
  17. {
  18. while ($wiersz = mysql_fetch_array($idzapytania))
  19. {
  20. echo '<table>';
  21. echo '<hr>';
  22. echo '<p class="style4 style5"><center>'. $wiersz[0].'</center></p>';
  23. echo '</table>';
  24. }
  25. $prev = $subpage - 1;
  26. $next = $subpage + 1;
  27. $prevLink = $_SERVER['PHP_SELF'] . '?page=news&page=' . $prev;
  28. $nextLink = $_SERVER['PHP_SELF'] . '?page=news&page=' . $next;
  29. $ilosc_wierszy = mysql_num_rows($idzapytania);
  30. if($subpage > 1)
  31. echo'<a style="text-decoration: none;" href="'.$prevLink.'">Poprzednia strona</a> ';
  32. $stron=round($ilosc_wierszy/$perPage);
  33. for($i=1; $i<=$stron; ++$i)
  34. {
  35. if($i==$subpage)
  36. echo $i;
  37. else
  38. echo '<a style="text-decoration: none;" href="index.php?page='.$i.'">'.$i.' </a>';
  39. }
  40. if($subpage < $stron)
  41. echo ' <a style="text-decoration: none;" href="'.$nextLink.'">Następna strona</a>';
  42. }
  43. mysql_close($connect);
  44. ?>
3lanc
  1. if (!empty($_GET['subpage']) &amp;&amp; (is_numeric($_GET['subpage'])))


zamień na

  1. if (!empty($_GET['subpage']) && (is_numeric($_GET['subpage'])))


Czytaj komunikaty ;-)
lukaszk
Dziękuję ale teraz nie wiem dlaczego pokazuje mi rekordy na jednej stronie
Licznik dobrze liczy bo pojawia się 1, 2 i Następna strona
Po kliknięciu następna przechodzi
z
stronicowanie22.php?page=news&page=1
na
stronicowanie22.php?page=news&page2
czyli ok ale niestety pokazuje te same rekordy co na pierwszej stronie (wszystkie z tabeli 8).
Wprowadziłem zmianę sugerowaną w komentarzach innych użytkowników

Cytat
na początku po zmiennych z bazą „$idzapytania”
dodałem 2 linie kodu =

„$max_zapytanie = ‘SELECT * FROM tabela WHERE news_id’; // żeby się pozbyć głupiego limitu [ustalamy max stron]
$max_idzapytania = mysql_query($max_zapytanie);”

i zamieniamy linijkę:
„$ilosc_wierszy = mysql_num_rows($idzapytania);”
na
„$ilosc_wierszy = mysql_num_rows($max_idzapytania);”

Mi po tych zmianach elegancko wyświetla bo, tak to uznaje Limita w Select’cie i zamiast dzielić przez ilosc rzeczywistych rekordów, dzieli przez ilość możliwych wyświetlanych rekordów…no mam nadzieje, że dostane pochwałę ? i zmienisz trochę kod, żeby nie wprowadzać młodych w błąd ;D


Bez tej modyfikacji wyświetla po np 5 rekordów na stronę ale niestety nie wyświetla 1,2 Następna strona tylko 1 i to w dodatku nie jest link.
thek
Jeśli dajesz kod, to daj cały, a nie wycinek! Tutaj w tym nie ma wcale pobierania wierszy wyniku tylko paginacja. I to działa jak sam piszesz. Ty zaś masz byka przy sklecaniu zapytania do bazy. Tam skopałeś LIMIT i dlatego pokazuje te same wyniki zawsze.
lukaszk
Ten kod kod odpowiada za wyświetlanie rekordów. Dałem tylko jedną wartość aby zobaczyć jak to działa.
Co jest dokładnie nie tak z select-em.
  1. echo '<table>';
  2.  
  3. echo '<hr>';
  4.  
  5. echo '<p class="style4 style5"><center>'. $wiersz[0].'</center></p>';
  6.  
  7. echo '</table>';


Ok powiedzmy że sobie poradziłem. Wiem że takie coś powinienem zrobić na zasadzie GET jakoś łatwiej mi przychodzi POST.
Z czasem będę to optymalizował więc to niebawem


Poniższy kod odpowiada za wyświetlanie
Pierwsza - Poprzednia (warunkowo) - ...TU NUMERY............... - Następna (warunkowo) - Ostatnia (warunkowo)
Jak zrobić aby skrypt zaznaczał na której jest stronie. A także w obecnej chwili jeśli mam 200 stron w paginacji wyświetli numery od 1 do 200
wiem że to było wałkowane ale do innych przykładów. Więc jak zrobić aby wyświetlone zostały [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]...[200]

Bardzo proszę o pomoc.

  1. <?php
  2. include "db.php";
  3.  
  4. $limit =2; //Liczba newsów na jednej stronie
  5.  
  6. $strona = $_GET['str']; // Pobranie numeru strony
  7. $strona = $_POST['str']; // Pobranie numeru strony
  8.  
  9. if (!isset($strona)) {
  10. $limit1 = 0;
  11. $limit2 = $limit;
  12. } else {
  13. $limit1 = $limit * $strona - $limit;
  14. $limit2 = $limit;
  15. }
  16.  
  17. //Definicja zapytania
  18. $zapytanie = "SELECT * FROM article_top ORDER BY id_art DESC LIMIT $limit1,$limit2";
  19.  
  20.  
  21. if ($r = mysql_query ($zapytanie)) {
  22. echo "<table width=100% border=0 cellpadding=0 id=toper-table cellspacing=0>";
  23.  
  24. echo "<tr>";
  25.  
  26. echo "<th class=wiersze_tabeli_th width=3% scope=col>Id</th>";
  27. echo "<th class=wiersze_tabeli_th width=12% scope=col>Autor</th>";
  28. echo "<th class=wiersze_tabeli_th width=15% scope=col>Data</th>";
  29. echo "<th class=wiersze_tabeli_th width=13% scope=col>Tytuł</th>";
  30. echo "<th class=wiersze_tabeli_th width=13% scope=col>Tytuł</th>";
  31. echo "<th class=wiersze_tabeli_th width=13% scope=col>Tytuł</th>";
  32. echo "<th class=wiersze_tabeli_th width=13% scope=col>Tytuł</th>";
  33. echo "<th class=wiersze_tabeli_th width=13% scope=col>Tytuł</th>";
  34.  
  35. echo "</tr>";
  36. //Odczytywanie w wyswietlenie kolejnych rekordow.
  37. while ($wiersz = mysql_fetch_array($r)) {
  38. echo "<tr>";
  39. echo "<td class=wiersze_tabeli_td sscope=col>".$wiersz['id_art']."</td>";
  40. echo "<td class=wiersze_tabeli_td sscope=col>".$wiersz['autor_article']."</td>";
  41. echo "<td class=wiersze_tabeli_td sscope=col>".$wiersz['datatime_art']."</td>";
  42. echo "<td class=wiersze_tabeli_td sscope=col>".$wiersz['title_art']."</td>";
  43. echo "<td class=wiersze_tabeli_td sscope=col>".$wiersz['dzial']."</td>";
  44. echo "<td class=wiersze_tabeli_td sscope=col><img src=include/images/".$wiersz['active_not'].".png></td>";
  45. echo "<td class=wiersze_tabeli_td sscope=col><center><form method=post action=><input type=hidden name=ab value=aktywuj>
  46. <input type=image src=include/images/001_06.png name=idb value=".$r['id_art']."></form></center></td>";
  47. echo "<td class=wiersze_tabeli_td sscope=col><center><form method=post action=><input type=hidden name=ab value=aktywuj>
  48. <input type=image src=include/images/001_06.png name=idb value=".$r['id_art']."></form></center></td>";
  49. echo "</tr>";
  50. }
  51. echo "</table>";
  52.  
  53. } else {
  54. die ('<p>Zapytanie nie zosta?o wykonane, bo <b>' . mysql_error() . "</b>. Zapytanie: $zapytanie.</p>");
  55.  
  56. }
  57.  
  58. echo "<p class=font_new_naglowki>Strony: </p>";
  59. echo "<table class=paginacja>
  60. <tr><td>
  61. <form method=post action=>
  62. <input type=hidden name=str value=1>
  63. <input class=paginacja type=submit name=Pierwsza alt=Kliknij value=Pierwsza>
  64. </form>
  65. </td></tr>
  66. </table>";
  67.  
  68. if ($strona>1) {
  69. $strona=$strona-1;
  70. echo "<table class=paginacja>
  71. <tr><td>
  72. <form method=post action=>
  73. <input type=hidden name=str value=$strona>
  74. <input class=paginacja type=submit name=Poprzednia value=Poprzednia>
  75. </form>
  76. </td></tr>
  77. </table>";
  78. }
  79.  
  80. list($ile)=mysql_fetch_row(mysql_db_query("test","SELECT count(*) FROM article_top"));
  81.  
  82. $liczba_stron = $ile / $limit;
  83. $liczba_stron = ceil($liczba_stron);
  84.  
  85. for ($v = 1; $v <= $liczba_stron; $v++) {
  86.  
  87. if ($liczba_stron == 1) {
  88. echo "<table class=paginacja><tr><td>
  89. <form method=post action=>
  90. <input class=paginacja type=hidden name=str value=1>
  91. <input class=paginacja type=submit name=Powrot value=Powrot></form>
  92. </td></tr></table>";
  93. } else {
  94. // echo "<a href=\"?str=$v\" title=\"Strona $v\">$v</a> ";
  95. echo "<table class=paginacja><tr><td><form method=post action=>
  96. <input class=paginacja type=submit name=str alt=Kliknij value='$v'></form></td></tr></table>";
  97. }
  98.  
  99.  
  100. }
  101. if ($strona>0 && $liczba_stron>1) {
  102. $strona=$strona+1;
  103. echo "<table class=paginacja>
  104. <tr><td>
  105. <form method=post action=>
  106. <input type=hidden name=str value=$strona>
  107. <input class=paginacja type=submit name=Nastepna value=Nastepna>
  108. </form>
  109. </td></tr>
  110. </table>";
  111. }
  112. if ($strona>=0 && $liczba_stron>1) {
  113. $strona=$liczba_stron;
  114. echo "<table class=paginacja>
  115. <tr><td>
  116. <form method=post action=>
  117. <input type=hidden name=str value=$strona>
  118. <input class=paginacja type=submit name=Ostatnia value=Ostatnia>
  119. </form>
  120. </td></tr>
  121. </table>";
  122. }
  123. ?>
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.