| 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: 14 let
|
|||
0