Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Jakiś błąd w stronicowaniu
drzalek
post 15.10.2008, 23:53:47
Post #1





Grupa: Zarejestrowani
Postów: 170
Pomógł: 18
Dołączył: 6.03.2007

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


Zrobiłem sobie taki skrypcik do stronicowania:

  1. <?php
  2.  
  3. require('bazalacz.php');
  4.  
  5. $zapytanie1 = "SELECT * FROM tabelka ORDER BY id_komorki";
  6. $query1 = mysql_query($zapytanie1);
  7.  
  8. $ile = mysql_num_rows($query1);
  9. $na_strone = 10;
  10. $stron = ceil ($ile / $na_strone);
  11.  
  12.  
  13.  
  14. if (!isset($_GET['strona'])) $strona = 1; else $strona = (int)$_GET['strona'];
  15.  
  16. $limit1=($strona-1)*$na_strone;
  17. $limit2=$strona*$na_strone;
  18.  
  19. $zapytanie2=$zapytanie1.' LIMIT '.$limit1.', '.$limit2;
  20. $query2 = mysql_query($zapytanie2);
  21.  
  22.  
  23. while($row=mysql_fetch_array($query2))
  24. {
  25.  
  26. echo $row['nazwa_komorki'];
  27. echo '<br/>';
  28. }
  29.  
  30.  
  31. for ($i = 1; $i <= $stron; $i++) echo '<a href="index.php?strona='.($i).'" >'.($i).'</a>';
  32.  
  33.  
  34.  
  35.  
  36. ?>


Wszystko ładnie działa, ale jest mały problem, jak kliknę na np 2 stronę to mi wyświetla nie 10 wyników a 20, jak na 3 to 30 itd, w pewnym momencie zaczyna się w ogóle wszystko chrzanić i przy 43 wywala 266, na ostatniej stronie (69) daje 6 wyników, czyli tak jak ma być, ale już na 68 daje 16.
Ja nie wiem pewnie to jest jakiś śmieszny błąd, być może jestem przemęczony, ale po prostu już całkiem zgłupiałem od tego wszystkiego :|

Jak macie jakiś pomysł co jest nie tak to proszę o pomoc smile.gif
Go to the top of the page
+Quote Post
nithajasz
post 16.10.2008, 05:04:53
Post #2





Grupa: Zarejestrowani
Postów: 230
Pomógł: 27
Dołączył: 27.05.2008
Skąd: Warszawa

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


Błąd przy LIMIT masz, pierwsza wartość to początkowy rekord, druga ilość rekordów do wyświetlenia.

  1. <?php
  2.  
  3. require('bazalacz.php');
  4.  
  5. $zapytanie1 = "SELECT * FROM tabelka ORDER BY id_komorki";
  6. $query1 = mysql_query($zapytanie1);
  7.  
  8. $ile = mysql_num_rows($query1);
  9. $na_strone = 10;
  10. $stron = ceil ($ile / $na_strone);
  11.  
  12. if (!isset($_GET['strona'])) $strona = 1; else $strona = (int)$_GET['strona'];
  13.  
  14. $limit1=($strona-1)*$na_strone;
  15.  
  16. $zapytanie2=$zapytanie1.' LIMIT '.$limit1.', '.$na_strone;
  17. $query2 = mysql_query($zapytanie2);
  18.  
  19.  
  20. while($row=mysql_fetch_array($query2))
  21. {
  22.  
  23. echo $row['nazwa_komorki'];
  24. echo '<br/>';
  25. }
  26.  
  27.  
  28. for ($i = 1; $i <= $stron; $i++) echo '<a href="index.php?strona='.($i).'" >'.($i).'</a>';
  29.  
  30. ?>
Go to the top of the page
+Quote Post
drzalek
post 16.10.2008, 08:50:01
Post #3





Grupa: Zarejestrowani
Postów: 170
Pomógł: 18
Dołączył: 6.03.2007

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


Heh, normalnie wstyd biggrin.gif dzięki wielkie
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 17:26