Erreur PHP/MySQL

[Résolu/Fermé]
Signaler
Messages postés
41
Date d'inscription
samedi 1 septembre 2007
Statut
Membre
Dernière intervention
15 janvier 2013
-
Messages postés
28034
Date d'inscription
mercredi 28 novembre 2007
Statut
Modérateur, Contributeur sécurité
Dernière intervention
3 septembre 2021
-
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:

	  $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

Messages postés
28034
Date d'inscription
mercredi 28 novembre 2007
Statut
Modérateur, Contributeur sécurité
Dernière intervention
3 septembre 2021
7 961
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 ?
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Messages postés
28034
Date d'inscription
mercredi 28 novembre 2007
Statut
Modérateur, Contributeur sécurité
Dernière intervention
3 septembre 2021
7 961
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.
Messages postés
41
Date d'inscription
samedi 1 septembre 2007
Statut
Membre
Dernière intervention
15 janvier 2013

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)
Messages postés
41
Date d'inscription
samedi 1 septembre 2007
Statut
Membre
Dernière intervention
15 janvier 2013

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 :/
Messages postés
28034
Date d'inscription
mercredi 28 novembre 2007
Statut
Modérateur, Contributeur sécurité
Dernière intervention
3 septembre 2021
7 961
$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
Messages postés
41
Date d'inscription
samedi 1 septembre 2007
Statut
Membre
Dernière intervention
15 janvier 2013

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 :/
Messages postés
28034
Date d'inscription
mercredi 28 novembre 2007
Statut
Modérateur, Contributeur sécurité
Dernière intervention
3 septembre 2021
7 961
$data = mysql_fetch_array($resultat2);
$resultat2 et non pas $resultat.
Messages postés
41
Date d'inscription
samedi 1 septembre 2007
Statut
Membre
Dernière intervention
15 janvier 2013

j'avais deja modifié :/
Messages postés
41
Date d'inscription
samedi 1 septembre 2007
Statut
Membre
Dernière intervention
15 janvier 2013

bon j'y vais donc je ne répondrais plus avant demain, bonne soirée et merci
Messages postés
28034
Date d'inscription
mercredi 28 novembre 2007
Statut
Modérateur, Contributeur sécurité
Dernière intervention
3 septembre 2021
7 961
Tu veux afficher quoi au juste l'id ?
Si oui, il faut juste écrire :
echo 'Le numéro est : ' . $resultat;
Messages postés
41
Date d'inscription
samedi 1 septembre 2007
Statut
Membre
Dernière intervention
15 janvier 2013

Merci beaucoup :)
Messages postés
28034
Date d'inscription
mercredi 28 novembre 2007
Statut
Modérateur, Contributeur sécurité
Dernière intervention
3 septembre 2021
7 961
Pas de quoi, bonne journée.
Messages postés
41
Date d'inscription
samedi 1 septembre 2007
Statut
Membre
Dernière intervention
15 janvier 2013

Un dernier coup de main possible? Ma boucle ne fonctionne pas :/
while ($ligne = $resultat2) 
    {
    echo '<b>'.$ligne['friend'];
    } 
Messages postés
28034
Date d'inscription
mercredi 28 novembre 2007
Statut
Modérateur, Contributeur sécurité
Dernière intervention
3 septembre 2021
7 961
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).
Messages postés
41
Date d'inscription
samedi 1 septembre 2007
Statut
Membre
Dernière intervention
15 janvier 2013

Merci, désolé je débute en PHP/SQL :/
Messages postés
28034
Date d'inscription
mercredi 28 novembre 2007
Statut
Modérateur, Contributeur sécurité
Dernière intervention
3 septembre 2021
7 961
Pas de souci.
Mieux vaut consolider les bases et apprendre plutôt que de recopier du code sans comprendre.
Sans ça, tu vas réussir finalement à coder mais ton code PHP ne sera pas "propre" et contiendra éventuellement des failles de sécurité.