Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pomoc w paginacji
Fred1485
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 22
Dołączył: 10.02.2015

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


Witam,

Bawię się teraz paginacją i mam taki kodzik:

  1. <?php
  2.  
  3. include('main.php');
  4.  
  5. $query_count = mysqli_query($uchwyt, "SELECT COUNT(id) FROM pagination");
  6. $count_result = mysqli_fetch_array($query_count);
  7.  
  8. $count = $count_result[0];
  9. $on_site = 7;
  10.  
  11. $pages = ceil($count / $on_site);
  12.  
  13. if(!isset($_GET['page']) || $_GET['page'] > $pages || $_GET['page'] <= 0 || !is_numeric($_GET['page'])) {
  14.  
  15. header('Location: pagination.php?page=1');
  16. }
  17. else {
  18.  
  19. $page = $_GET['page'];
  20. }
  21.  
  22. $limit = ($page - 1) * $on_site;
  23.  
  24. $query_data = "SELECT * FROM pagination LIMIT $limit, $on_site";
  25. $query_data = mysqli_query($uchwyt, $query_data);
  26.  
  27. while($result_data = mysqli_fetch_array($query_data)) {
  28.  
  29. echo $result_data['value']. '<br>';
  30. }
  31.  
  32. for($i=1;$i<=$pages;$i++) {
  33.  
  34. if($i == $page) {
  35.  
  36. echo '<b>'. $i. '</b> ';
  37. }
  38. else {
  39.  
  40. echo '<a href=pagination.php?page='. $i. '>['. $i. ']</a> ';
  41.  
  42. }
  43. }
  44.  
  45.  
  46.  
  47. ?>


Udało mi się samemu ze wskazówkami do tego dojść i w efekcji dostaję paginację:

88
99
111
222
333
444
555 (jakieś liczby z bazy)

[1] 2 [3] [4] (dla strony drugiej)

Jak może część z was się domyśliła na tym nie zamierzam poprzestać i zrobić żeby dla np strony pierwszej pojawiało się po wszystkich linkach do numerów stron DO OSTATNIEJ a dla ostatniej DO PIERWSZEJ itp (IMG:style_emoticons/default/wink.gif) Próbowałem jakoś to zrobić i działa tylko że mam pętlę i ten link się pojawia dla wszystkich podstron (IMG:style_emoticons/default/sad.gif) Może ktoś coś podpowie?

Poradziłem sobie ale wydaję mi się że można to zrobić dużo prościej (IMG:style_emoticons/default/biggrin.gif) Może ktoś się jeszcze odezwie i mnie oświeci (IMG:style_emoticons/default/wink.gif) Jak narazie działa takie coś:

  1. <?php
  2.  
  3. include('main.php');
  4.  
  5. $query_count = mysqli_query($uchwyt, "SELECT COUNT(id) FROM pagination");
  6. $count_result = mysqli_fetch_array($query_count);
  7.  
  8. $count = $count_result[0];
  9. $on_site = 5;
  10.  
  11. $pages = ceil($count / $on_site);
  12.  
  13. if(!isset($_GET['page']) || $_GET['page'] > $pages || $_GET['page'] <= 0 || !is_numeric($_GET['page'])) {
  14.  
  15. header('Location: pagination.php?page=1');
  16. }
  17. else {
  18.  
  19. $page = $_GET['page'];
  20. }
  21.  
  22. $limit = ($page - 1) * $on_site;
  23.  
  24. $query_data = "SELECT * FROM pagination LIMIT $limit, $on_site";
  25. $query_data = mysqli_query($uchwyt, $query_data);
  26.  
  27. while($result_data = mysqli_fetch_array($query_data)) {
  28.  
  29. echo $result_data['value']. '<br>';
  30. }
  31.  
  32. if($count > 1) {
  33.  
  34. if($page == 1) {
  35.  
  36. for($i=1;$i<=$pages;$i++) {
  37.  
  38. if($i == $page) {
  39.  
  40. echo '<b>'. $i. '</b> ';
  41. }
  42. else {
  43.  
  44. echo '<a href=pagination.php?page='. $i. '>['. $i. ']</a> ';
  45. }
  46. }
  47. echo '<a href=pagination.php?page='. $pages. '>OSTATNIA</a>';
  48. }
  49. elseif($page == $pages) {
  50.  
  51. echo '<a href=pagination.php?page=1>PIERWSZA</a> ';
  52.  
  53. for($i=1;$i<=$pages;$i++) {
  54.  
  55. if($i == $page) {
  56.  
  57. echo '<b>'. $i. '</b> ';
  58. }
  59. else {
  60.  
  61. echo '<a href=pagination.php?page='. $i. '>['. $i. ']</a> ';
  62. }
  63. }
  64. }
  65. else {
  66.  
  67. echo '<a href=pagination.php?page=1>PIERWSZA</a> ';
  68.  
  69. for($i=1;$i<=$pages;$i++) {
  70.  
  71. if($i == $page) {
  72.  
  73. echo '<b>'. $i. '</b> ';
  74. }
  75. else {
  76.  
  77. echo '<a href=pagination.php?page='. $i. '>['. $i. ']</a> ';
  78. }
  79. }
  80. echo '<a href=pagination.php?page='. $pages. '>OSTATNIA</a>';
  81. }
  82. }
  83. else {
  84.  
  85. echo 'STRONA <b>1</b> z <b>1</b>';
  86. }
  87.  
  88. ?>
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 18.09.2025 - 04:27