Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Stronicowanie mam kod kto przerobi ?
Forum PHP.pl > Forum > PHP
DenVer89
witam mam taki kodzik stronicowania:
  1. <?
  2. function pasek($rekordow,$na_stronie,$na_pasku,$skrypt,$s) {
  3. $stron = ceil($rekordow/$na_stronie);
  4. if ($s<1) $s=1;
  5. if ($s>$stron) $s=$stron;
  6. $koniec = $s+$na_pasku;
  7. if ($s<=$na_pasku) $koniec = $na_pasku*2+1;
  8. if ($koniec>$stron) $koniec = $stron;
  9. $start = $koniec-$na_pasku*2;
  10. if ($start<1) $start=1;
  11. if ($s>1) $p = "<a href='$skrypt".($s-1)."'>&lt;&lt;&lt;</a>";
  12. else $p = "<span style='color:gray'>&lt;&lt;&lt;</span>";
  13. if ($s<$stron) $n = "<a href='$skrypt".($s+1)."'>&gt;&gt;&gt;</a>";
  14. else $n = "<span style='color:gray'>&gt;&gt;&gt;</span>";
  15. for ($i=$start; $i<=$koniec; $i++) {
  16. if ($i==$s) $l .= "&nbsp;<span style='color:#cc0000;'><b>$i</b></span>&nbsp;";
  17. else $l .= "&nbsp;<a href='$skrypt$i'>$i</a>&nbsp;";
  18. }
  19. if ($rekordow<1) $wynik = "brak informacji spełniających kryteria wyszukiwania";
  20. else $wynik = "znalezionych: $rekordow, strona $s z $stron<br />";
  21. if ($stron>1) $wynik .= "$p&nbsp; - $l - &nbsp;$n";
  22. return $wynik;
  23. }
  24.  
  25. $s = ($_GET["s"]>1)?number_format($_GET["s"], 0, "", ""):1; // numer strony
  26. $na_stronie = 2;  // liczba rekordow widocznych na stronie
  27. $na_pasku  = 5; // liczba odpowiedzi/2 na pasku
  28. $skrypt = "index.php?s="; // skrypt do wysyłania danych
  29.  
  30. if (mysql_connect($dbhost, $dbuser, $dbpass)
  31. and mysql_select_db($dbname)) {
  32.  
  33. $start = ($s-1)*$na_stronie;
  34. $wynik = mysql_query("SELECT SQL_CALC_FOUND_ROWS *
  35. FROM kurde ORDER BY id ASC LIMIT $start, $na_stronie
  36. ");
  37. $rekordow = mysql_result(mysql_query("SELECT FOUND_ROWS()"),0);
  38.  
  39. // ponownie szuka, gdy ktos celowo wpisze "s" większe od ilości stron:
  40. // możesz pominąć, służy do estetycznej obsługi danych
  41. $stron = ceil($rekordow/$na_stronie);
  42. if ($s>$stron and $rekordow>0) {
  43. $start = ($stron-1)*$na_stronie;
  44. $wynik = mysql_query("SELECT *
  45. FROM kurde ORDER BY id ASC LIMIT $start, $na_stronie
  46. ");
  47. }
  48.  
  49. }
  50.  
  51. echo "<p style='text-align:center;'>";
  52. echo pasek($rekordow,$na_stronie,$na_pasku,$skrypt,$s);
  53. echo "</p>";
  54.  
  55. while($wynik and $wyswietl = mysql_fetch_assoc($wynik)) {
  56. echo "<p>";
  57. foreach($wyswietl as $pole);
  58. echo "<a name=\"".$wyswietl['id']."\"></a><table width='600' border='0' cellpadding='0' cellspacing='0'>
  59. <tr><TD width='600' rowspan='3' valign='top'><div align='left' class='wielkosc'><img align='left' src='img/kurde.png' width='40' height='45'><span class='wyzyj'><b>".$wyswietl['wyzyj'].":</b></span>&nbsp;<span class='wyzyj1'>";
  60. echo bbcode("".$wyswietl['wyzyj1']."");
  61. echo "</span><br>
  62. <span class='powod'><b>".$wyswietl['powod'].":</b></span>&nbsp;<span class='powod1'>";
  63. echo bbcode("".$wyswietl['powod1']."");
  64. echo "</span><br>
  65. <span class='nick'>".$wyswietl['nick'].":</span>&nbsp;<span class='nick1'>";
  66. echo bbcode("".$wyswietl['nick1']."");
  67. echo "</span>
  68. </div></TD>
  69. </table><table width='650' height='32' border='0' cellpadding='0' cellspacing='0'><TD><div align='left'><img src='img/kurde_oddziel.png' width='650' height='32'><br>
  70. <br>
  71. </div></TD></table>";
  72. echo "</p>";
  73. }
  74. ?>

on wyświetla następująco strony:

<<< - 6 7 8 9 10 11 12 13 14 15 16 - >>>

<<< i >>> to przerzuca na następną strony lub oprzednio w kodzie ustalamy ile pokazywać po lewej jak i po prawej stron wszystko się przesówa wszystko by było ok ale chce aby w tym kodzie było

< i > czyli początek strony i koniec strony winksmiley.jpg aha i sortowanie danych według id od najwyzszego id do najmniejszego id bo mi coś nie wychodzi :/ za pomoc dzięki
MacPain
Kod z algorytmy.pl więc może zadaj to pytanie Dariuszowi smile.gif
DenVer89
nom a jesli ktoś wie gdzie jest kod jakiś który by robił podział na strony tak:
<< < - 2 3 4 5 6 7 8 9 10 11 12 - > >>

<< to aby przenieść mnie na 1 strony i >> na ostatnio
< przenosi na poprzednią i > na nastepną stron po lewej od aktywnej 5 pokazuje i po prawej tez
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.