[RESOLU] erreur mysqli_fetch_array()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] erreur mysqli_fetch_array()

Re: [RESOLU] erreur mysqli_fetch_array()

par Ryle » 04 mai 2015, 12:09

Effectivement, ta requête SQL est erronée, le mot de passe une fois crypté en md5 devrait être entouré d'apostrophes pour délimiter cette chaine dans ta requête. Il faut dont prévoir les apostrophes dans la génération de la requête :
$sql = 'SELECT count(*) FROM utilisateur WHERE identifiant=' . $id . ' AND password=\'' . md5($password) . '\'';

Re: erreur mysqli_fetch_array()

par jaayap' » 04 mai 2015, 11:23

d'accord, en effet cela ne m'affiche plus l'erreur de départ et à priori c'est ma requête qui ne fonctionne pas

Re: erreur mysqli_fetch_array()

par Saian » 04 mai 2015, 11:11

Salut tu ne testes pas la bonne variable pour savoir si la requête c'est bien exécutée.
Il faut tester $req pas $sql.
$sql est une chaine de caractères (la requête) et retournera toujours true.

erreur mysqli_fetch_array()

par jaayap' » 04 mai 2015, 11:02

Bonjour,

Je suis actuellement en train de travailler sur une application php ou j'ai besoin d'une gestion des utilisateurs.
J'ai une page pour la connexion de ces derniers, elle fonctionne lorsque je passe le mot de passe en dur seulement lorsque je hache le mot de passe (avec md5() ) une erreur apparait :

Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given

Je n'ai pas réussi à résoudre le problème et ne voit pas trop d’où il vient, voici un extrait de mon code :

Code : Tout sélectionner

$sql = 'SELECT count(*) FROM utilisateur WHERE identifiant='.$id.' AND password='.md5($password).''; $req = mysqli_query($conn_objet_perdu,$sql); if(!$sql){ die('Erreur sql'.mysql_error()); } if($sql){ $data = mysqli_fetch_array($req); } mysqli_free_result($req); mysqli_close($conn_objet_perdu); // si on obtient une réponse, alors l'utilisateur est un membre if ($data[0] == 1) { session_start(); $_SESSION['login'] = $_POST['login']; echo 'bien joué'; } // si on ne trouve aucune réponse, le visiteur s'est trompé soit dans son identifiant, soit dans son mot de passe elseif ($data[0] == 0) { $erreur = 'Compte non reconnu.'; }