Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MySQL]Paginacja, Stronnicowanie wyników
b_chmura
post
Post #1





Grupa: Zarejestrowani
Postów: 813
Pomógł: 34
Dołączył: 18.03.2007
Skąd: o stamtąd

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


Witam
Nie jestem pewien co do swojego systemu paginacji...
Chciałbym abyście go prześledzili i zauważyli czy coś jest nie tak.
(czasem dziwnie się zachowuje... te różne kombinacje ze względu na to gdy $po = 1)
kod:
  1. <?php
  2. $page = $_GET['page'];
  3. $page = ($page < 1 or empty($page))? 0: $page;
  4. $po = 5;
  5. $page = $po*$page;
  6. $page = ($page <= 0)? 1: $page;
  7. $stron  = round($cnt/$po);
  8.  
  9. if($po == 1)
  10. { 
  11. $plus = 0;
  12. $i = 1;
  13. } 
  14. else 
  15. { 
  16. $plus = 1; 
  17. $i = 0;
  18. }
  19.  
  20. while($i <= $stron)
  21. {
  22. if($i*$po <= $cnt) 
  23. {
  24. echo '<a href="?page='.$i.'">'.($i+$plus).'</a> ';
  25. }
  26. $i++;
  27. }
  28.  
  29. if($page == 1)
  30. {
  31. $page = 0;
  32. }
  33. elseif($page > 1)
  34. {
  35. $page = ($page-1);
  36. }
  37. ?>

Gdzie:
$page - liczba od którego rekordu ma być wyświetlana treść
$po - limit wyświetlanych rekordów począwszy od $page
$cnt - suma wszystkich rekordów w bazie
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
lukaszk
post
Post #2





Grupa: Zarejestrowani
Postów: 159
Pomógł: 0
Dołączył: 21.12.2010

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


Dziękuję skorzystam (IMG:style_emoticons/default/smile.gif)
Znalazłem coś innego co działa
  1. <?php
  2. include "db.php";
  3.  
  4. $limit =5; //Liczba newsów na jednej stronie
  5.  
  6. $strona = $_GET['str']; // Pobranie numeru strony
  7.  
  8.  
  9. if (!isset($strona)) {
  10. $limit1 = 0;
  11. $limit2 = $limit;
  12. } else {
  13. $limit1 = $limit * $strona - $limit;
  14. $limit2 = $limit;
  15. }
  16.  
  17. //Definicja zapytania
  18. $zapytanie = "SELECT * FROM komentarze ORDER BY id_komenta DESC LIMIT $limit1,$limit2";
  19.  
  20.  
  21. if ($r = mysql_query ($zapytanie)) {
  22.  
  23. //Odczytywanie w wyswietlenie kolejnych rekordow.
  24. while ($wiersz = mysql_fetch_array($r)) {
  25.  
  26. print '<a href="paginacja.php?id='.$wiersz['id_komenta'].'"><strong>'.$wiersz['komentarz'].'</strong></a><br />';
  27. echo $wiersz['data_komenta'];
  28. }
  29.  
  30. } else {
  31. die ('<p>Zapytanie nie zosta?o wykonane, bo <b>' . mysql_error() . "</b>. Zapytanie: $zapytanie.</p>");
  32.  
  33. }
  34. echo "<br>";
  35. echo "Strony: ";
  36. list($ile)=mysql_fetch_row(mysql_db_query("test","SELECT count(*) FROM komentarze"));
  37.  
  38. $liczba_stron = $ile / $limit;
  39. $liczba_stron = ceil($liczba_stron);
  40.  
  41. for ($v = 1; $v <= $liczba_stron; $v++) {
  42.  
  43. if ($liczba_stron == 1) {
  44. echo " $v";
  45. } else {
  46. echo "<a href=\"?str=$v\" title=\"Strona $v\">$v</a> ";
  47. }
  48. }
  49. echo "</div>";
  50.  
  51.  
  52.  
  53.  
  54. ?>
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: 6.10.2025 - 20:44