Autor | Zpráva | ||
---|---|---|---|
jamil Profil * |
#1 · Zasláno: 15. 8. 2012, 18:29:57
Ahoj, chtěl bych se zeptat jak mám kombinovat select a select count... když mám třeba tohle select * from user; a zároveň bych potřeboval vědět kolik těch řádků mi to vypsalo. zkoušel jsem toho už dost ale nic nedělá to co potřebuju. Děkuji.
|
||
mimochodec Profil |
#2 · Zasláno: 15. 8. 2012, 18:41:26
$qry = "SELECT * FROM table"; $res = mysql_query($qry); $cnt = mysql_num_rows($res); echo "řádků: ".$cnt; if ($cnt > 0 ) { while ($row=MySQL_Fetch_Array($res)): echo $row["ID"]; endwhile; }; |
||
jamil Profil * |
#3 · Zasláno: 15. 8. 2012, 18:52:49 · Upravil/a: jamil
aha děkuji... já myslel že bych to měl udělat rovnou v sql něco jako SELECT *, COUNT(*) AS pocet FROM uzivatele; ale jestli se to dělá takhle tak dík :o)
...protože tahle stejně tu databázi oslovim dvakrát ne? tomu jsem se chtěl vyhnout právě. |
||
mimochodec Profil |
#4 · Zasláno: 15. 8. 2012, 18:56:55
jamil:
„já myslel že bych to měl udělat rovnou v sql něco jako SELECT *, COUNT“ To můžeš, ale nevím přesně jak a hlavně nevím proč. „protože tahle stejně tu databázi oslovim dvakrát ne?“ Ne. |
||
pcmanik Profil |
jamil:
Praveze nie, teraz uz php spocita dane riadky ktore boli vratene databazou. // Mimochodec ma prebehol :) |
||
jamil Profil * |
#6 · Zasláno: 15. 8. 2012, 18:58:08 · Upravil/a: jamil
tak já taky nevim přesně proč... nechtěl jsem jí zatěžovat a oslovovat dvakrát ne?
pcmanik: ahaaa :o) tak díky :o) |
||
Alphard Profil |
#7 · Zasláno: 15. 8. 2012, 20:43:22
jamil:
Pletete si to zřejmě se situací, kdy se dělá třeba stránkování a reálně se vrátí jen např. 20 řádků z tisíců. Pak je vhodná chvíle použít druhý dotaz count(*) (jsou i jiné možnosti, ale tohle je nejběžnější). |
||
Joker Profil |
#8 · Zasláno: 15. 8. 2012, 21:10:02
jamil:
Ještě pro jistotu dodám, že právě v situaci, kdy potřebujete načíst nějaké záznamy z databáze a zároveň vědět, kolik těch záznamů se vybralo, je vhodné použít mysql_num_rows. Naopak v situaci, kdy nepotřebujete data těch záznamů, ale pouze vědět jejich počet, je lepší použít SQL a SELECT COUNT dotaz, než ty záznamy vybrat a pak použít mysql_num_rows. |
||
MartinR Profil |
#9 · Zasláno: 16. 8. 2012, 09:05:38
pokud nechces dva dotazy do db, tak to spocitej primo v php (myslim ze o to ti jde) .. count($res) .. a nebo primo jak pises v dotazu SELECT *, count(nazev_sloupce) FROM xxx
|
||
Časová prodleva: 12 let
|
0