Autor | Zpráva | ||
---|---|---|---|
Iron Profil * |
#1 · Zasláno: 22. 12. 2011, 21:47:45
Dobrý večer, prichádzam za vami s dotazom, ktorý sa možno javí ako jalový a začiatočnícky, no ocením každú radu. Mám takýto skript:
$sql_spoj= mysql_query("SELECT 'Nick','Nadpis','Prispevok','D',COUNT(*) as Pocet FROM hesla,prispevky WHERE hesla.ID = prispevky.ID ORDER BY D DESC LIMIT 0,4"); while ($sql_vypis= mysql_fetch_array($sql_spoj)) { echo $sql_vypis['Pocet']; settype($sql_vypis['D'],'integer'); $date= Date("d.m.Y",$sql_vypis['D']); echo "<h2 class='h2vypis'> $sql_vypis[Nadpis] </h2>"; echo "<small class='smallvypis'> <b> $sql_vypis[Nick] </b> $date </small>"; tento skript by mi mal cyklom vypísať dáta z databázy, no ajkeď je tam 6 záznamov, vypíše to iba jeden. Ak odstránim COUNT, ide to ako má. Doposiaľ som nepoužíval COUNT ale mysql_num_rows() a tak sa v tom nevyznám, je tu niekto kto mi poradí? Ďakujem ;) |
||
panther Profil |
#2 · Zasláno: 22. 12. 2011, 21:50:59
Iron:
takto to nefunguje - buď si můžeš z DB vrátit samostatně (bez dalších sloupců) počet všech řádků, nebo počítat záznamy, které jsou nějak zgroupované. Možná ti pomůže manuál, jsou tam i příklady. |
||
Iron Profil * |
#3 · Zasláno: 22. 12. 2011, 22:08:49 · Upravil/a: Iron
Ďakujem ;)
Mám ešte otázku je niečo takéto vhodné riešenie? Nehnevajte sa, ale ja tomu manuálu fakt nerozumiem... $sql= mysql_query("SELECT COUNT(*) as Pocet FROM hesla,prispevky WHERE hesla.ID = prispevky.ID "); // NEMAM ZIADNE CLANKY $beh= mysql_fetch_array($sql); if ($beh['Pocet']== 0) { echo "<h4> Tak nič no. </h4>"; } |
||
Tori Profil |
#4 · Zasláno: 22. 12. 2011, 23:56:08
Iron:
A co vlastně chcete zjistit? Celkový počet příspěvků, nebo informace o jednotlivých uživatelích (včetně počtu příspěvků, které napsali), ...? |
||
Iron Profil * |
#5 · Zasláno: 23. 12. 2011, 07:52:30
Som lama ;) Potrebujem vypísať cyklom príspevky z DB tabuľky prispevky + pod nadpis priradiť meno človeka čo ho pridal z tabuľky hesla. Pri pridaní príspevku sa mu dá ID práve prihláseného užívateľa, čo je primárny kľúč v tabuľke hesla. A to s COUNT mi ide o to, aby keď nenájde žiadne výsledky, napísalo "<h4> Tak nič no. </h4>" nič viac. Ďakujem.
|
||
Ugo Profil |
#6 · Zasláno: 23. 12. 2011, 08:10:29
v tomto případě y ti možná spíš pomohlo mysql_num_rows() na zjištění a nebo úplně vynechat count a nechat to na iterétoru fetch_array() - teda jestli po ránu alespoň náznakem chápu ;)
|
||
Crusher Profil |
#7 · Zasláno: 23. 12. 2011, 09:36:38 · Upravil/a: Crusher
Iron:
Presne jak popsal Ugo. Osobne pouzivam spolu s podminkou takto: // oprava SQL $sql_spoj= mysql_query("SELECT 'Nick','Nadpis','Prispevok','D',COUNT(*) as Pocet FROM hesla,prispevky WHERE hesla.ID = prispevky.ID ORDER BY D DESC LIMIT 0,4"); $sql_spoj= mysql_query("SELECT 'Nick','Nadpis','Prispevok','D' FROM hesla,prispevky WHERE hesla.ID = prispevky.ID ORDER BY D DESC LIMIT 0,4"); if (!mysql_num_rows($sql_spoj)){ echo "<p class='p-info'>Diskuze neobsahuje žádné příspěvky. </p>"; } else { echo "<p class='p-info'>Počet vypsaných příspěvků v diskuzi: ".mysql_num_rows($sql_spoj)." </p>"; while ($sql_vypis= mysql_fetch_array($sql_spoj)) { settype($sql_vypis['D'],'integer'); $date= Date("d.m.Y",$sql_vypis['D']); echo "<h2 class='h2vypis'> $sql_vypis[Nadpis] </h2>"; echo "<small class='smallvypis'> <b> $sql_vypis[Nick] </b> $date </small>"; |
||
pcmanik Profil |
#8 · Zasláno: 23. 12. 2011, 12:52:25
Crusher:
To co je za logiku si od databazy pytat count a nasledne robit znovu to iste v php? |
||
Iron Profil * |
#9 · Zasláno: 23. 12. 2011, 13:14:38
No veď ja som to robil s mysql_num_rows(), ale dočítal som sa že je to rýchlejšie s COUNT a teraz neviem ako to použiť..
|
||
Tori Profil |
#10 · Zasláno: 23. 12. 2011, 13:55:37
Iron:
„ja som to robil s mysql_num_rows(), ale dočítal som sa že je to rýchlejšie s COUNT“ Je to rychlejší, ale každé se hodí pro jinou situaci: Když chcete jen ověřit, že zadané podmínce odpovídá alespoň jeden řádek dat (např. jestli existuje uživatel s tímto loginem a heslem), použijte SELECT COUNT(*) . Když potřebujete načíst data z DB a také zjistit, kolik jich vlastně je, použijte SELECT [názvy sloupců] + mysql_num_rows. V téhle konkrétní situaci to bude ten druhý případ.
|
||
Iron Profil * |
#11 · Zasláno: 23. 12. 2011, 14:03:15
Ďakujem za vysvetlenie. Takže som si to zbytočne komplikoval, hm.. Dovidenia ;)
|
||
Crusher Profil |
#12 · Zasláno: 23. 12. 2011, 14:45:49
pcmanik, Iron:
Jak je popsano Tori. Ja zapomel smazat ty vyskyty "count(*)" v sql a v kodu. Omlouvam se. Kod jsem ve svem predchozim prispevku opravil. |
||
Časová prodleva: 12 let
|
0