Page 1 sur 1

Impossibilité de parcourir la BDD utilisant une variable d'une boucle foreach

Posté : 29 juin 2018, 23:17
par AirGear54
Bonsoir,

Je viens demander de l'aide, car je n'arrive pas à chercher un mot-clé dans ma BDD avec $elt, il m'affiche ce message d'erreur :

Code : Tout sélectionner

Fatal error: Call to a member function fetch_assoc() on a non-object (pour la ligne où il y a $ligne)
et je cherche depuis déjà plusieurs heures sans savoir d'où provient le problème :?. Si vous pouvez m'aider je vous en serai reconnaissant, merci d'avance en tout cas.

Code : Tout sélectionner

$elements = getSousElem($element,null); $elements[$element] = $element; var_dump($elements); foreach($elements as $elt => $val){ $requete="SELECT DISTINCT * FROM recettes WHERE indexx LIKE CONCAT('%','".$elt."','%')"; $Resultat=$mysqli->query($requete); $ligne = $Resultat->fetch_assoc(); }
Ce que ça m'affiche quand je fais

Code : Tout sélectionner

var_dump($elements);
:

Code : Tout sélectionner

array 'Agrume' => string 'Agrume' (length=6) 'Citron' => string 'Citron' (length=6) 'Partie de citron' => string 'Partie de citron' (length=16) 'Jus de citron' => string 'Jus de citron' (length=13) 'Tranche de citron' => string 'Tranche de citron' (length=17) 'Zeste de citron' => string 'Zeste de citron' (length=15) 'Citron vert' => string 'Citron vert' (length=11) 'Partie de citron vert' => string 'Partie de citron vert' (length=21) 'Jus de citrons verts' => string 'Jus de citrons verts' (length=20) 'Zeste de citron vert' => string 'Zeste de citron vert' (length=20)
une partie de ma BDD:
Image

Re: Impossibilité de parcourir la BDD utilisant une variable d'une boucle foreach

Posté : 29 juin 2018, 23:40
par @rthur
Ce message d'erreur indique que la variable $Resultat ne contient pas ce qu'elle devrait, donc fait un var_dump($Resultat) pour ton debug, si c'est à false c'est que ta requête SQL a échouée.
Donc regarde mysqli_error() pour connaitre la raison, ou sinon ce qu'on fait souvent c'est un echo de ta requête SQL et de la tester dans phpmyadmin.
https://php.net/mysqli_error

LIKE CONCAT(), c'est un peu inhabituel, essaye ça déjà :
...LIKE '%".$elt."%'";