Lekérdezés utáni sorok száma LIMIT esetén
Sziasztok.
Van egy SELECT-em ami mondjuk a termékeket listázza ki.
(elég bonyolult lassú lekérdezés...)
Ha a találatokat oldalakra szeretném bontani, akkor ugye LIMIT-el korlátozom.
Viszont szükségem lenne arra is, hogy összesen hány találat lenne az adott feltétel szerint.
Adodb-t használok, és a találatok számát le is tudom kérdezni könnyen:
$result->NumRows();
Viszont ha a LIMIT 0,10 szerepel, akkor nem azt kapom, hogy 2000 találat van, hanem a LIMIT korlátozás szerint hány találatot kaptam. (pl. 10).
Hogy tudnám lekérdezni az összes találatszámot COUNT az az SQL újbóli lefuttatása nélkül?
Találtam valami FOUND_ROWS-t de ott mi biztosítja, hogy valóban annak a SELECT-nek a sorainak a számát kapom aminek szeretném?
(Nem egy másik szál eredményét...)
Előre is kösz.
Üdv:
Zoli
■ Van egy SELECT-em ami mondjuk a termékeket listázza ki.
(elég bonyolult lassú lekérdezés...)
Ha a találatokat oldalakra szeretném bontani, akkor ugye LIMIT-el korlátozom.
Viszont szükségem lenne arra is, hogy összesen hány találat lenne az adott feltétel szerint.
Adodb-t használok, és a találatok számát le is tudom kérdezni könnyen:
$result->NumRows();
Viszont ha a LIMIT 0,10 szerepel, akkor nem azt kapom, hogy 2000 találat van, hanem a LIMIT korlátozás szerint hány találatot kaptam. (pl. 10).
Hogy tudnám lekérdezni az összes találatszámot COUNT az az SQL újbóli lefuttatása nélkül?
Találtam valami FOUND_ROWS-t de ott mi biztosítja, hogy valóban annak a SELECT-nek a sorainak a számát kapom aminek szeretném?
(Nem egy másik szál eredményét...)
Előre is kösz.
Üdv:
Zoli
session safe
Üdv,
Felhő
Köszi
Akkor ezek után rendszeresen használom ha az én sessionomra vonatkozik csak.... ;)
Jól gondolom itt nem a PHP sessionra kell gondolni, hanem az SQL kapcsolatra.
Tehát ha gyorsan 3x rányom az ügyfél a frissítésre (PHP szerint ugyanaz a session), akkor sem keverednek össze a hatáskörök gondolom.
Üdv:
Zoli
sql sessionra
Most próbálgattam, igen, az sql sessionra - azaz az előző lekérdezésre vonatkozik, kb úgy, mint az mysql_insert_id(). És működik a mysql 4.1-ben is.
Egy példa query az archívum kedvéért:
Az első az eddig megszokott eredményt adja, a 2. a LIMIT nélküli összes sorok számát.
Manual: http://dev.mysql.com/doc/refman/5.0/en/information-functions.html#function_found-rows