Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Podział strony względem wpisu
Forum PHP.pl > Forum > Przedszkole
szczalpi
Witam
Proszę was o pomoc. Mam bazę danych, w której posiadam 1000 wpisów. Dzielenie wpsiów odbywa sie co 10 rekordów. Działa prawidłowo.
Tylko mam problem z podziałem stron. Strona dzieli sie na 100 podziałów. Lecz ten podział wychodzi poza stronę i brzydko to wygląda.
Mam prośbę do was. Czy możecie zobaczyć co można zmienić, aby wyświetlało się 5 następnych stron.
proszę o pomoc.
Pozdrawiam

  1. <?
  2.  
  3. ### podpiecie pliku css oraz pliku z wykorzystywanymi funkcjami itp ###
  4.  
  5. ### podpiecie pliku css oraz pliku z wykorzystywanymi funkcjami itp ###
  6.  
  7. $db=mysql_connect('');
  8. $znajdz = $_GET['znajdz'];
  9. if($_GET['przeszukaj']=="Szukaj"):
  10. {
  11. $znajdz = $_GET['znajdz'];
  12. $sql = "select COUNT(*) from samochody where producent like '%$znajdz%' ";
  13. $wykonaj1 = mysql_query($sql);
  14. list($wszystkich)=mysql_fetch_row($wykonaj1);
  15. $page = $_GET['page'];
  16. if ($page == "") $page="1";
  17. $ile="10";
  18. $podstron = ceil($wszystkich/$ile);
  19. $sql="select * from samochody where producent like '%$znajdz%' limit ".(($page-1)*$ile).",".$ile;
  20. $result=mysql_query($sql);
  21. echo "<p class=wyniki>Wyniki wyszukiwania: $znajdz</p> <br>
  22. <p class=ilosc> Ilość samochodów: ".mysql_result($wykonaj1,0,0)."</p>";
  23. if (mysql_num_rows($result)==0) {echo "<p><b>Nic nie znaleziono.</b></p>";}
  24. while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){
  25. ?>
  26. <table>
  27. <tr>
  28. <td>
  29. <td><table>
  30. <tr>
  31. <td width=130><p class="inne">Producent:</p><td><p class=pol><? echo $row['producent']; ?></p></tr>
  32. <tr>
  33. <td width=130><p class="inne">Model:</p><td><p class=pol><? echo $row['model']; ?></p></tr>
  34. <tr>
  35. <td width=130><p class="inne">Silnik:</p><td><p class=pol><? echo $row['silnik']; ?></p></tr>
  36. <tr>
  37. <td width=130><p class="inne">Moc:</p><td><p class=pol><? echo $row['moc']; ?> KM</p></tr>
  38. <tr>
  39. <td width=250 class="wer"><h2><a href="http://eszukaj.com/auto/<? echo $row['id']; ?>,<? echo $row['producent']; ?>.html" title="Samochód: <? echo $row['producent']; ?> <? echo $row['model']; ?>"><? echo $row['producent']; ?> <? echo $row['model']; ?></a></h2></td>
  40. </tr> </table>
  41. </table>
  42. <?
  43. }
  44. }
  45. endif;
  46. ?>
  47. <center><ul class="strona"><li><?
  48. for ($i=1; $i<$podstron; $i++)
  49. echo "<a href='szukaj.php?page=".$i."'>$i</a> ";
  50. echo "<a href='szukaj.php?page=".$podstron."'>$podstron</a>";
  51. ?>
  52. </li></ul>
  53. <p class=wyniki><? echo "Ilość obiektów: $wszystkich Strona $page z $podstron" ?></p></center>
kkpre
ostatnia pętla

to
  1. <?
  2. for ($i=1; $i<$podstron; $i++)
  3. echo "<a href='szukaj.php?page=".$i."'>$i</a> ";
  4. echo "<a href='szukaj.php?page=".$podstron."'>$podstron</a>";
  5. ?>


zamień na

  1. <?
  2. if(!$page) $page=1;
  3.  
  4. for ($i=$page; $i<=$page+5; $i++) echo "<a href='szukaj.php?page=".$i."'>$i</a> ";
  5. echo "/ <a href='szukaj.php?page=".$podstron."'>$podstron</a>";
  6. ?>


Najpierw warunek sprawdza czy $page jest zdefiniowany - jeżeli nie = wyświetla pierwszą stronę. Potem pętla zaczyna wyświetlanie stron od $page do $page+5 .. czyli wyświetli najbliższe 5 stron (włącznie z aktualną) + na końcu ostatnią stronę po slashu / (nie wiem czy tak miało być, ale tak jest w Twoim kodzie)
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.