Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z pagnacją [1] [2] [3]...
Forum PHP.pl > Forum > PHP
klakier1991
Kod wygląda następująco.
  1.  
  2. $o=$num_results; //liczba przedmiotow ogolnie
  3. $ile=10; //liczba przedmiotow na strone
  4. $n=$_GET['p']; //pobranie numeru strony
  5. $a = $n - 1;
  6. if($n<1){ //zabezpieczenie przed pustym i ujemnym pustymi
  7. $n=1;
  8. }
  9. $max=$n*$ile;
  10.  
  11. $zapytanie = "SELECT * FROM box WHERE recipient='$username' LIMIT $a, $max;";
  12. $pobierz= mysql_query($zapytanie);
  13.  
  14.  
  15. for($i=($n-1)*$ile+1; ($i<=$max)&&($i<=$o); $i++){
  16.  
  17.  
  18. $dane = mysql_fetch_array($pobierz);
  19.  
  20.  
  21.  
  22. print "<input type='checkbox' name='ch[$dane[id]]' value='1' /><b><a href='/index.php?view=inbox&id=$dane[id]&p=$p'>$dane[sender] Tytuł: $dane[title] $dane[date]</b></a><hr />" ;
  23.  
  24. }
  25.  
  26. print '<input type="submit" name="Submit" value="Usuń" /></form>';
  27.  
  28. $is=(int)(ceil($o/$ile));
  29.  
  30. if(!$is){
  31. echo 'Nie masz żadnych wiadomości';
  32. }
  33.  
  34. else{
  35. for($i=1;$i<=$is;$i++)
  36. echo '<a href="index.php?view=inbox&p='.$i.'">['.$i.']</a>' ;
  37. }
  38.  
  39.  


Jak widać został skopiowany z tej strony i troszkę zmieniony.
Problem wygląda następująco, ilość wiadomości wyświetlanych i stron się zgadza, ale na drugiej stronie powtarzają się wiadomości z pierwszej i kilka z drugiej itd.
Nie mam pojęcia co jest nie tak ma ktoś jakiś pomysł ?
thek
Jeśli się kopiuje, to się patrzy co się kopiuje i myśli przy tym... Skopałeś linijkę 11 z zapytaniem do bazy. Lepiej popatrz jaką składnię ma LIMIT to się może obudzisz. Kopiowac i przerabiać czyjś kod też trzeba umieć.
klakier1991
hmm źle napisałem skopiowałem część kodu a ogółem limit to sam zrobiłem i co do składni limitu jak dobrze pamiętam to wyciąga rekordy od, do. Zanim napisałem na forum siedziałem przy tym cały dzień zmieniając wzory itp. po prostu ten jest najbliższy poprawności. Próbowałem zmieniać limit np. $n, $max
gdzie $n jest stroną a $max jest $n+$ilość_stron_wyświetlanych itp i nic ... ;/ nie wiem co jest nie tak a poza tym jestem
zielony wiec korzystam z pomocy forum.
nospor
W manualu masz napisane dokładnie czym są poszczególne parametry dla LIMIT - nie zgaduj, nie twórz różnych możliwości, tylko po prostu przeczytaj co jest co. W manual podane są również przykłady, które bardzo dobrze w praktyce pokazują tę teorię.
klakier1991
hahaha dzięki wszystkim po napisaniu mojego posta uświadomiłem sobie o co chodzi w tym limicie i co robiłem źle poprawiłem kod na:

  1. $max=$n*$ile;
  2. $a = $n*$ile-$ile;
  3. $b = $n*$ile+$ile;
  4. $zapytanie = "SELECT * FROM box WHERE recipient='$username' LIMIT $a, $b;";
  5. $pobierz= mysql_query($zapytanie);
  6.  

wystarczyła mała podpowiedź dzięki smile.gif
nospor
Nawet z podpowiedzią nie jesteś w stanie poprawnie tego napisać....

$b to nie żadne:
$b = $n*$ile+$ile;
tylko
$b =10;
i już.

$b określa ile chcesz rekordów pobrać. A przecież zawsze chcesz pobrać stałą liczbę rekordów, czyli np. 10. To wszystko jest ładnie opisane w manualu i ładnie pokazane na przykładach.
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.