Fonction PHP

dooki
Invité n'ayant pas de compte PHPfrance

30 nov. 2019, 23:44

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);

Mammouth du PHP | 2703 Messages

30 nov. 2019, 23:53


dooki
Invité n'ayant pas de compte PHPfrance

01 déc. 2019, 00:23

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 ?

Mammouth du PHP | 2703 Messages

01 déc. 2019, 00:29

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.

dooki
Invité n'ayant pas de compte PHPfrance

01 déc. 2019, 00:46

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 !