Autor Zpráva
Matej Ševčík
Profil
Čaute, mám ešte jeden problém s PDO. Keď chcem pomocou foreach zobraziť články z databázy ale iba tie ktoré napísal $_SESSION['name'] skúšal som to pomocou prepare a execute aj pomocou query ale nejde mi to
juriad
Profil
Máš to rozbité. Zkus se trochu rozepsat.
Matej Ševčík
Profil
$query = $pdo->prepare('SELECT * FROM quotations WHERE nickname=?');
        $quotes = $query->execute(array($_SESSION['nickname']));

        foreach ($quotes as $q)
        {
            echo "$q[quotation]";
        }

Potrebujem iba kod. Ako to mam urobit aby to fungovalo
juriad
Profil
http://jecas.cz/pdo#prochazeni-dat
Chybí ti tam zavolání metody fetchAll.
Matej Ševčík
Profil
Fatal error: Call to a member function fetchAll() on a non-object in C:\xampp\htdocs\post\my-quotes.php on line 38

$query = $pdo->prepare('SELECT * FROM quotations WHERE nickname=?');
                $quotes_a = $query->execute(array($_SESSION['nickname']));
                $quotations = $quotes_a->fetchAll();

                foreach ($quotations as $q)
                {
                    echo "$q[quotation]";
                }
pcmanik
Profil
Matej Ševčík:
Máme ti preložiť tú chybu alebo čo po nás chceš?

Ale nech nevyrývam, metoda execute vracia true/false a nie záznamy. Ciže musíš zavolať metódu fetchAll na query, teda $query->fetchAll();
Kajman
Profil
Matej Ševčík:
Přesně, jak píše pcmanik. A Vaše proměnná $quotes_a se jen hodí na rozpozání, zda dotaz nezhavaroval.
$query = $pdo->prepare('SELECT * FROM quotations WHERE nickname=?');
$quotes_a = $query->execute(array($_SESSION['nickname']));
if($quotes_a)
{
    $quotations = $query->fetchAll();
    foreach ($quotations as $q)
    {
        echo "$q[quotation]";
    }
}

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: