Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Paginacja strony
Forum PHP.pl > Forum > Przedszkole
szczalpi
Witam
Mam problem ze stronicowaniem na stronie, bardziej ze zmianą kodu.
Mój skrypt wyświetla się w taki sposób:
"Poprzednia123456789101112131415161718192021222324252627282930313233Następna" wywala wszystkie strony i zakres wychodzi poza stronę.
Chciałbym go zmienić, aby wyświetlał się w taki sposób:
" Poprzednia 1 2 [3] 4 5 Następna"
Próbowałem zmienić go lecz nie dałem rady. Nie wiem, w którym miejscu zmienić kod.
Proszę o pomoc.
Pozdrawiam
Pozniżej podaje kod:
  1. <?
  2.  
  3.  
  4.  
  5. $pokaz = $_GET['pokaz'];
  6. if($_GET['przeszukaj']=="Szukaj"):
  7. {
  8. $pokaz = $_GET['pokaz'];
  9. if ($_GET['page']!="") $str=urldecode($pokaz);
  10. else
  11. $str = iconv("utf-8","iso-8859-2", $pokaz);
  12.  
  13. $pokaz=$str;
  14.  
  15. $sql = "select COUNT(*) from ";
  16. $wykonaj1 = mysql_query($sql);
  17.  
  18. list($wszystkich)=mysql_fetch_row($wykonaj1);
  19. $page = $_GET['page'];
  20. if ($page == "") $page="1";
  21. $poprzenia = $page -1;
  22. $nastepna = $page +1;
  23. $ile="50";
  24. $podstron = ceil($wszystkich/$ile);
  25.  
  26. $sql="select * from ".(($page-1)*$ile).",".$ile;
  27. $result=mysql_query($sql);?>
  28. <p class="wyniki">Wyniki wyszukiwania: <? echo $pokaz;?></p>
  29.  
  30. <?
  31. $i = 1;
  32.  
  33. if (mysql_num_rows($result)==0) {echo "<p><b>Nic nie znaleziono.</b></p>";}
  34.  
  35. if (mysql_result($wykonaj1,0,0))
  36. {
  37. ;
  38. }
  39. else
  40. {
  41. echo '<p style="border-bottom: 2px solid #B0B0B0;
  42.  
  43. color: #333333;
  44. display: block;
  45. font-size: 16px;
  46. font-weight: bold;
  47. margin-left:10px;
  48. padding-bottom: 5px;text-align:left;width:400px">Dodaj Obiekt za darmo</p>
  49. <p style="text-align:left;margin-left:10px;"><a style="color:red;text-decoration:none" href="http://www.ewypoczywaj.pl/dodaj_obiekt.html"><b>Dodaj nowy obiekt noclegowy</b></a></p>
  50. ';
  51.  
  52. }
  53.  
  54.  
  55.  
  56. while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
  57. {
  58.  
  59. ?>
  60. <a href="pokaz.php?pokaz=<? echo $row['miasta']; ?>" ><? echo $row['tresc']; ?>
  61. Miasto: <? echo $row['miasta']; ?><br/>
  62. Ilość wyświetleń: <? echo $row['counter']; ?></a>
  63. <?
  64. $i++;
  65. }
  66.  
  67. }
  68.  
  69.  
  70. endif;
  71.  
  72. ?>
  73. <table class="lewaw"><?
  74.  
  75.  
  76. // odnośnik na poprzednią stronę
  77. if($page != 1){
  78. echo('<a href="szukaj.php?page='.$poprzenia.'&pokaz='.$pokaz.'&przeszukaj=Szukaj">Poprzednia</a>');
  79. }
  80. // pętla for za pomocą której wyświetlamy odnośniki do poszczególnych stron
  81. for($i=1; $i<=$podstron; $i++){
  82. echo(' <a href="szukaj.php?page='.$i.'&pokaz='.$pokaz.'&przeszukaj=Szukaj">'.$i.'</a> ');
  83. }
  84. // odnośnik na następną stronę
  85. if($page != $podstron){
  86. echo('<a href="szukaj.php?page='.$nastepna.'&pokaz='.$pokaz.'&przeszukaj=Szukaj">Następna</a>');
  87. }
  88.  
  89.  
  90. ################################################################################
  91.  
  92.  
  93.  
  94. ?>
  95.  


Prosze o pomoc.
!*!
kwestia odpowiednich warunków. http://www.phpro.org/tutorials/Pagination-...HP-and-PDO.html
timon27
  1. // pętla for za pomocą której wyświetlamy odnośniki do poszczególnych stron
  2. for($i=1; $i<=$podstron; $i++){

zmianiasz na:
  1. // pętla for za pomocą której wyświetlamy odnośniki do poszczególnych stron
  2. for($i=max(0,$page-2); $i<=min($podstron,$page+2); $i++){

Oczywiście można to skomplikować do o wiele ładniejszych form.

Serio nie umiesz najprostrzej pętli?
Jesli tak to radzę zacząć od prostszych projektów.

Edit:
tutaj masz ładniej: http://forum.php.pl/index.php?s=&showt...st&p=951799
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.