Erreur PHP/MySQL
Résolu
noctua
Messages postés
52
Date d'inscription
Statut
Membre
Dernière intervention
-
crapoulou Messages postés 28002 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
crapoulou Messages postés 28002 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
Je suis en train de faire une page qui affiche les amis de la personne connectée et je bloque... Chaque fois, ca m'affiche: Erreur SELECT friend FROM friends WHERE id='SELECT id FROM users WHERE email='quuent1@hotmail.com'" You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'quuent1@hotmail.com'"' at line 1
Voila mon code (apparement c'est $requete2 qui pose problème:
Merci et bonne soirée
Je suis en train de faire une page qui affiche les amis de la personne connectée et je bloque... Chaque fois, ca m'affiche: Erreur SELECT friend FROM friends WHERE id='SELECT id FROM users WHERE email='quuent1@hotmail.com'" You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'quuent1@hotmail.com'"' at line 1
Voila mon code (apparement c'est $requete2 qui pose problème:
$requete = "SELECT id FROM users WHERE email='".$_SESSION['email']."'";
$requete2= "SELECT friend FROM friends WHERE id='".$requete.'"';
$resultat = mysql_query($requete) or die ('Erreur '.$requete.' '.mysql_error());
$resultat2 = mysql_query($requete2) or die ('Erreur '.$requete2.' '.mysql_error());
$data = mysql_fetch_array($resultat);
mysql_close ();
Merci et bonne soirée
14 réponses
-
Ah mais l'ordre d'exécution des requêtes n'est pas bon !
$requete contient le texte de ta requête et non pas l'id que tu recherches dans la base.
Il faut :$requete = "SELECT id FROM users WHERE email='".$_SESSION['email']."'"; $resultat = mysql_query($requete) or die ('Erreur '.$requete.' '.mysql_error()); $requete2= "SELECT friend FROM friends WHERE id='".$resultat."'"; $resultat2 = mysql_query($requete2) or die ('Erreur '.$requete2.' '.mysql_error()); $data = mysql_fetch_array($resultat2); mysql_close ();
Tu veux un Nyon ? -
Bonsoir,
Tu as inversé les guillemets et les apostrophes :
$requete2= "SELECT friend FROM friends WHERE id='".$requete.'"';
Il faudrait plutôt :
$requete2= "SELECT friend FROM friends WHERE id='".$requete."'";
Au lieu de apostrophe/guillemet/apostrophe à la fin de la ligne, il faut guillemet/apostrophe/guillemet. -
Toujours la même erreur: Erreur SELECT friend FROM friends WHERE id='SELECT id FROM users WHERE email='XXXXX@hotmail.com'' You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'XXXXX@hotmail.com''' at line 1
(Adresses mail supprimées) -
ah merci beaucoup! Tu sais me dire juste la signification de ca?
echo 'Le numéro est : '.$data['friend'];
C'est à l'endroit de friend, je ne sais pas se que je dois mettre :/ -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
$data = mysql_fetch_array($resultat);
La variable data est ici un tableau.
friend est l'indice du tableau.
et le résultat affiché est la valeur à cet indice.
Je te conseille de regarder ça :
https://www.php.net/manual/fr/function.mysql-fetch-array.php
-
Merci :) Nouveau problème, rien ne s'affiche :/
echo 'Le numéro est : '.$data['friend'];
M'affiche simplement "Le numéro est:" mais il n'y en a aucun après :/ -
$data = mysql_fetch_array($resultat2);
$resultat2 et non pas $resultat. -
j'avais deja modifié :/
-
bon j'y vais donc je ne répondrais plus avant demain, bonne soirée et merci
-
Tu veux afficher quoi au juste l'id ?
Si oui, il faut juste écrire :echo 'Le numéro est : ' . $resultat;
-
-
Pas de quoi, bonne journée.
-
Un dernier coup de main possible? Ma boucle ne fonctionne pas :/
while ($ligne = $resultat2) { echo '<b>'.$ligne['friend']; }-
Je te conseille d'apprendre la signification de ton code :
Tu confonds les variables, les tableaux, les indices de tableau, ...
https://www.php.net/manual/fr/function.mysql-fetch-assoc.php
Exemple avec la fonction "mysql_fetch_assoc"while ($row = mysql_fetch_assoc($result)) { echo $row["userid"]; echo $row["fullname"]; echo $row["userstatus"]; }
Dans ton cas, "resultat2" est censé être un indice du tableau (un champ de ta base de données, ce qui n'est pas le cas).
-
-
Merci, désolé je débute en PHP/SQL :/