Autor Zpráva
peter_r
Profil
potrebujem vypísať počet riadkov z tabuľky, skúšal som to pred niekoľkými mesiacmi, nešlo mi to tak som sa na to vykašľal

teraz som sa k tomu vrátil opäť, skúšam rôzne návody z rôznych stránok a stále nič

toto mám asi správne (si myslím):

$result = Db::queryAll('
            SELECT COUNT(vyrobok_id)
            FROM vyrobok
        ');

ale s vypísaním si neviem rady, skúšal som viac variant, vždy nejaká chyba

echo mysqli_num_rows($reuslt);

kde mám chybu?
Ikki
Profil
Jednoduše si vytvoř alias
SELECT COUNT(vyrobok_id) AS celkemVyrobku FROM vyrobok
A vypiš běžným způsobem $result['celkemVyrobku'];
peter_r
Profil
$result = Db::queryAll('
          SELECT COUNT(vyrobok_id) AS celkemVyrobku FROM vyrobok
        ');
        
        echo $result['celkemVyrobku'];

a vypísalo

Notice: Undefined index: celkemVyrobku
blaaablaaa
Profil
peter_r:
Tvá databázová vrstva určitě bude mít nějakou metodu na vrácení jednoho záznamu - něco jako fetch nebo rovnou fetchOne/fetchSingle.
peter_r
Profil
blaaablaaa:

tak v tomto som mimo
Serg
Profil
Odkud je ta třída Db? Je stažená z internetu u nějakého článku? Tak ten článek nejspíš bude rovnou vysvětlovat jak funguje a co umí.
Mně připadá jako že je odsud: www.itnetwork.cz/php/databaze (to se dá zjistit po otevření souboru Db.php)
Jestli je to tak, tak bude mít i metody querySingle a queryOne.
queryOne vrací celý první řádek, querySingle vrací jen první sloupec z prvního řádku. Tady stačí vzít jen první sloupec, ale jako možností je víc, jde to i s tím queryAll, jen je to zbytečné.

<?php
// querySingle
$pocet = Db::querySingle('SELECT COUNT(*) FROM vyrobok');

// queryOne
$result = Db::queryOne('SELECT COUNT(*) AS pocet FROM vyrobok');
$pocet = $result['pocet'];

// queryAll
$result = Db::queryAll('SELECT COUNT(*) AS pocet FROM vyrobok');
$pocet = $result[0]['pocet'];

Nebo taky může být chyba v SQL dotazu, např. překlep v názvu tabulky...
peter_r
Profil
Serg:
áno, učil som sa na stráke itnetwork.cz

ďakujem, querySingle mi funguje

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0