Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php/mysql] stronicowanie wynikow
Forum PHP.pl > Forum > Przedszkole
kebq
witam serdecznie!
mam sobie prosty kod, ktory i tak stworzyl mi kila problemow:
  1. <?php
  2. $litera = array("a","b","c","ć","d","e","f","g","h","i","j","k","l","ł","m","n","o","ó","p","r","s","ś","t","u","v","w","x","y","z");
  3. for ($i=0; $i<=28; $i++)
  4. {
  5. echo "<a href=sennik.php?t=ih&l=".$litera[$i].">$litera[$i]</a>";
  6. if($i=="28")
  7. { 
  8.  echo"<br><br>";
  9. }
  10. else
  11. { 
  12.  echo " :: ";
  13. }
  14. }
  15. //ih - index haseł
  16. //ph - pokaż hasło
  17.  
  18. $zapytanie=mysql_connect(localhost, baza_danych, user);
  19. $select_db = mysql_select_db("nazwa_bazy");
  20. if($t == "ih")
  21. {
  22. $query = mysql_query("SELECT id, tytul FROM sennik WHERE tytul LIKE '$l%' ORDER BY tytul ASC"); 
  23. if(mysql_num_rows($query)==0)
  24. {
  25. echo('Brak haseł na zadanš literę.');
  26. }
  27. while($row = mysql_fetch_array($query))
  28. {
  29. $id = $row['id'];
  30. $tytul=$row['tytul'];
  31. echo "<a href=sennik.php?t=ph&id=".$id.">$tytul</a> <br>" ;
  32. }
  33. }
  34. if($t == "ph")
  35. {
  36. $query = mysql_query("SELECT tytul,znaczenie FROM sennik WHERE id='$id'"); 
  37. while($row = mysql_fetch_array($query))
  38. {
  39. $znaczenie = $row['znaczenie'];
  40. $tytul=$row['tytul'];
  41. echo "<b>$tytul</b><br><br>$znaczenie" ;
  42. }
  43. }
  44.  
  45. ?>


czy jakas dobra dusza moglaby pomoc mi z wykonaniem stronicowania newsow?
nie potrzebuje zaawansowanych rozwiazan, wielkich klas etc. tylko prostego numerowania stron
bede wdzieczny za wszelka pomoc i niezlinczowanie mojej osoby
skowron-line
forum->szukaj->slowo kluczowe(paginacja, stronicowanie)
Legro
Moze byc cos takiego? :

  1. <?php
  2.  
  3. $page = ( int ) $page; if ( !isset ( $page ) or empty ( $page )) { $page = 1; }
  4.  
  5. $w_pp = 5; // Ile wynikow na stronie
  6. $r = $rows % $w_pp;
  7. $a = $rows - $r;
  8. $lpages = $a / $w_pp;
  9. $lpages ++;
  10. $start = $page * $w_pp - $w_pp;
  11. $limit = $w_pp;
  12. $pages_str = '';
  13. $pages_str .= '<p>';
  14. $pages_str .= ' stron: '.$lpages.', strony: ';
  15.  
  16. for ( $i=1; $i <= $lpages; $i++ ) {
  17. if ($i == $page) $pages_str .= ''.$i.'';
  18. if ($i != $page) $pages_str .= ' <a href="adres.php?page='.$i.'">'.$i.'</a> ';
  19. };
  20.  
  21. $pages_str .= '</p>';
  22.  
  23. $pages .= $pages_str;
  24. ?>


I w zapytaniu do bazy danych dajesz : Limit $start, $limit

I powinno dzialac :]
kebq
witam
kod ladnie dostosowalem sobie do wlasnych potrzeb, naprawde dziekuje za pomoc
bede jeszcze kombinowal z ladniejszym przedstawieniem indeksu stron, zobaczymy co z tego wyjdzie

EDIT:
hm... no dobrze "little help" z indeksem stron mile widziany ;-)
jak "ladniej" wyswietlic index tych stron?
-funky_beat-
W ktorym miejscu tego podanego rozwiązania nalezy wpisac zapytanie?
Draom
Przepraszam za odkopanie tematu, ale nie mogę znaleźć rozwiązania problemu. Mój skrypt wyświetlający newsy wygląda w ten sposób:
  1. $db=mysql_connect('localhost','root','***')
  2. or die('Nieudane polaczenie z baza danych...');
  3. mysql_select_db('nobody')
  4. or die('Nie udalo sie wybrac bazy danych...');
  5.  
  6. $link=mysql_query("SELECT * FROM news ORDER BY id desc");
  7.  
  8. while($wiersz=mysql_fetch_array($link))
  9. {
  10. echo '<b>';
  11. echo $wiersz['tytul'];
  12. echo '</b> (';
  13. echo $wiersz['data'];
  14. echo ')';
  15. echo "<br>\n";
  16. echo $wiersz['tresc'];
  17. echo "<br>\n";
  18. echo "<br>\n";
  19. }
  20.  


Nie mam kompletnego pojęcia, jak mógłbym w tym skrypcie zaimplementować mechanizm stronicowania, próbowałem różnych sposobów, ale nic nie pomogło closedeyes.gif
webfreak
  1.  
  2.  
  3. $adjacents = 3;
  4.  
  5.  
  6. $query = "SELECT COUNT(*) as num FROM $tbl_name";
  7. $total_pages = mysql_fetch_array(mysql_query($query));
  8. $total_pages = $total_pages[num];
  9.  
  10.  
  11. $targetpage = "index.php"; //nazwa pliku w ktorym znajduje sie ten kod
  12. $limit = 10; //ile rezultatow pokazac na strone
  13. $page = $_GET['page'];
  14. if($page)
  15. $start = ($page - 1) * $limit; //pokazuje rezultaty z 1 strony
  16. else
  17. $start = 0;
  18.  
  19.  
  20. $sql = "SELECT * FROM $tbl_name LIMIT $start, $limit";
  21. $result = mysql_query($sql);
  22.  
  23.  
  24. if ($page == 0) $page = 1;
  25. $prev = $page - 1;
  26. $next = $page + 1;
  27. $lastpage = ceil($total_pages/$limit);
  28. $lpm1 = $lastpage - 1;
  29.  
  30.  
  31. $pagination = "";
  32. if($lastpage > 1)
  33. {
  34. $pagination .= "<div class=\"pagination\">";
  35.  
  36. if ($page > 1)
  37. $pagination.= "<a href=\"$targetpage?page=$prev\">Ť previous</a>";
  38. else
  39. $pagination.= "<span class=\"disabled\">Ť previous </span>";
  40.  
  41.  
  42. if ($lastpage < 7 + ($adjacents * 2))
  43. {
  44. for ($counter = 1; $counter <= $lastpage; $counter++)
  45. {
  46. if ($counter == $page)
  47. $pagination.= "<span class=\"current\">$counter</span>";
  48. else
  49. $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
  50. }
  51. }
  52. elseif($lastpage > 5 + ($adjacents * 2))
  53. {
  54.  
  55. if($page < 1 + ($adjacents * 2))
  56. {
  57. for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
  58. {
  59. if ($counter == $page)
  60. $pagination.= "<span class=\"current\">$counter</span>";
  61. else
  62. $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
  63. }
  64. $pagination.= "...";
  65. $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
  66. $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";
  67. }
  68.  
  69. elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
  70. {
  71. $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
  72. $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
  73. $pagination.= "...";
  74. for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
  75. {
  76. if ($counter == $page)
  77. $pagination.= "<span class=\"current\">$counter</span>";
  78. else
  79. $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
  80. }
  81. $pagination.= "...";
  82. $pagination.= "<a href=\"$targetpage?page=$lpm1\">$lpm1</a>";
  83. $pagination.= "<a href=\"$targetpage?page=$lastpage\">$lastpage</a>";
  84. }
  85.  
  86. else
  87. {
  88. $pagination.= "<a href=\"$targetpage?page=1\">1</a>";
  89. $pagination.= "<a href=\"$targetpage?page=2\">2</a>";
  90. $pagination.= "...";
  91. for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
  92. {
  93. if ($counter == $page)
  94. $pagination.= "<span class=\"active\">$counter</span>";
  95. else
  96. $pagination.= "<a href=\"$targetpage?page=$counter\">$counter</a>";
  97. }
  98. }
  99. }
  100.  
  101. //Przycisk NEXT
  102. if ($page < $counter - 1)
  103. $pagination.= "<a href=\"$targetpage?page=$next\">next ť</a>";
  104. else
  105. $pagination.= "<span class=\"disabled\">next ť</span>";
  106. $pagination.= "</div>\n";
  107. }
  108.  
  109.  
  110.  



potem w html dodajesz

  1. <?=$pagination?>
  2.  
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.