Page 1 sur 1

Fonction PHP

Posté : 30 nov. 2019, 23:44
par dooki
Bonjour,
J'ai créer une fonction qui me permet d'aller chercher les infos dans ma bdd :
celle ci se trouve dans la Class DB

Code : Tout sélectionner

public function query($sql){ $req =$this->db->prepare($sql); $req->execute(); $result = $req->fetchAll(PDO::FETCH_OBJ); var_dump($result); }
Aprés avoir fait un include, j'ai mis sur ma page article :

Code : Tout sélectionner

$db = new DB(); $db->query('select * from produits ORDER BY id DESC'); echo $result['nom'];
Le var_dump de la fonction m'affiche bien tout mes articles parcontre la variable $result n'est pas reconnue
Notice: Undefined variable: result
pourtant je l'ai définie dans ma fonction ? : $result = $req->fetchAll(PDO::FETCH_OBJ);

Re: Fonction PHP

Posté : 30 nov. 2019, 23:53
par or 1

Re: Fonction PHP

Posté : 01 déc. 2019, 00:23
par dooki
Merci !
Je l'ai mise en global dans ma fonction et y'a plus l'erreur !

Code : Tout sélectionner

public function query($sql){ global $produit; $req =$this->db->prepare($sql); $req->execute(); $result = $req->fetchAll(PDO::FETCH_OBJ); $produit = array($result); }
J'en demande peut etre un peu trop mais ducoup j'ai tenté un :

Code : Tout sélectionner

$db = new DB(); $db->query('select * from produits ORDER BY id DESC'); foreach ($produit as $test){ echo $test['prix']; }
Notice: Undefined index:prix
Alors que mes produits ont bien une colonne prix , le foreach aurait du retournait quelque chose ?

Re: Fonction PHP

Posté : 01 déc. 2019, 00:29
par or 1
le global n'est absolument pas la solution à votre problème.

$result = $req->fetchAll(PDO::FETCH_OBJ);
$produit = array($result);
$produit contient donc un tableau qui a une entrée. cette entrée est un tableau. donc c'est normal que $test['prix'] n'existe pas.

Re: Fonction PHP

Posté : 01 déc. 2019, 00:46
par dooki
le global n'est absolument pas la solution à votre problème.
Un return dans la fonction pourrait être la solution à mon problème ?
Sachant que la fonction à pour but d'aller chercher dans la base de donnée les infos et de les mettre dans un tableau, je ne pense pas..
J'ai pensé aussi a créer une variable $product(par exemple) dans ma page ou il y a les produits, et dans ma fonction, faire en sorte que $product prend le array avec les infos dedans.(Ca me semble mieux)

$produit contient donc un tableau qui a une entrée. cette entrée est un tableau. donc c'est normal que $test['prix'] n'existe pas.
L'erreur parait logique maintenant, merci de me consacrer un peu de temps !