Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Limity
Forum PHP.pl > Forum > PHP
b2n
Witam mam takowe zapytanie

  1. SELECT p.*, k.name kname, k.id kid, k.nadrz
  2. FROM $tabprod p JOIN $tabkat k ON (p.category=k.id) WHERE k.id='$id' ORDER BY k.pos, p.pos LIMIT $od,$do


ustala to jakiś limit $od $do
dokładnie chodzi o podział na strony czyli 10 na kazdej i wyswietla odpowiednio [1][2] ...

  1. <?php
  2.  
  3. $ilosc_wynikow = count($result);
  4. $ilosc = ceil($ilosc_wynikow/10);
  5. ?>


gdzie $result to wyniki wrzucone do tablicy z zapytania prezentowanego powyzej

i tu mam pytanie bo w tej chwili jezeli dam $od=0 i $do=10 to w tym przypadku zwroci mi 10 wyników i wynik $ilosc bedzie 1

rozwiązaniem było by ponowne zapytanie bazy o wszystkie rekordy spełniające warunek nie dołączając LIMIT i wtedy to liczyć ale czy da się to jakoś rozwiązać inaczej ?

mam nadzieje że dobrze opisałem
mike
To ja na razie wtrące że:
  1. ... LIMIT X, Y

X, Y nie oznacza od, do.
Tylko od rekordu X, rekordów Y.
Np.: LIMIT 5,5 oznacza od rekordu 5 wybierz 5 kolejnych.
LIMIT 10,5 oznacza od rekordu 10 wybierz 5 kolejnych.
SongoQ
Niestety nie ma, musisz 2 razy wywolac zapytanie raz z COUNT dla bez limitu a 2 raz z limitem i zwracac rekordy.
b2n
Prosze konkretna odpowiedź dzięki serdeczne ;-)
mike
@SongoQ podał Ci konkretną odpowiedź.
Czy może szukasz konkretnego gotowca questionmark.gif
Nosfi
pobierz wpierw wszystkie rekordy:
  1. <?php
  2.  
  3. $result_all = mysql_db_query($baza,"SELECT * FROM tabela");
  4. $all = mysql_num_rows($result_all);
  5.  
  6. ?>

potem pobierz tyle ile potrzebujesz:
  1. <?php
  2.  
  3. $ile = 10;
  4. $od = $page * $ile;
  5.  
  6. $result = mysql_db_query($baza,"SELECT * FROM tabela LIMIT $od, $ile");
  7. while($row = mysql_fetch_array($result)){
  8. echo $row["pole"] . '<br>';
  9. }
  10.  
  11. ?>

no i zostaja strony:
  1. <?php
  2.  
  3. if($all > $ile){
  4. if($page > 0) echo '<a href="?page=' . ($page - 1) . '" >poprzednia</a> ';
  5. for($i = 0; $i < ($all / $ile); $i++) echo '<a href="?page=' . $i . '" >' . ($i + 1) . '</a> ';
  6. if($page < $i - 1) echo '<a href="?page=' . ($page + 1) . '" >następna</a>';
  7. }
  8.  
  9. ?>
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.