Erreur PHP/MySQL

Résolu/Fermé
noctua Messages postés 41 Date d'inscription samedi 1 septembre 2007 Statut Membre Dernière intervention 15 janvier 2013 - 28 janv. 2012 à 22:29
crapoulou Messages postés 28160 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 21 mai 2024 - 29 janv. 2012 à 11:53
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
A voir également:

14 réponses

crapoulou Messages postés 28160 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 21 mai 2024 7 999
Modifié par crapoulou le 28/01/2012 à 23:03
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
crapoulou Messages postés 28160 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 21 mai 2024 7 999
28 janv. 2012 à 22:36
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.
0
noctua Messages postés 41 Date d'inscription samedi 1 septembre 2007 Statut Membre Dernière intervention 15 janvier 2013
Modifié par crapoulou le 28/01/2012 à 22:59
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)
0
noctua Messages postés 41 Date d'inscription samedi 1 septembre 2007 Statut Membre Dernière intervention 15 janvier 2013
28 janv. 2012 à 22:47
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 :/
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crapoulou Messages postés 28160 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 21 mai 2024 7 999
28 janv. 2012 à 22:50
$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
0
noctua Messages postés 41 Date d'inscription samedi 1 septembre 2007 Statut Membre Dernière intervention 15 janvier 2013
28 janv. 2012 à 22:57
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 :/
0
crapoulou Messages postés 28160 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 21 mai 2024 7 999
28 janv. 2012 à 23:03
$data = mysql_fetch_array($resultat2);
$resultat2 et non pas $resultat.
0
noctua Messages postés 41 Date d'inscription samedi 1 septembre 2007 Statut Membre Dernière intervention 15 janvier 2013
28 janv. 2012 à 23:05
j'avais deja modifié :/
0
noctua Messages postés 41 Date d'inscription samedi 1 septembre 2007 Statut Membre Dernière intervention 15 janvier 2013
28 janv. 2012 à 23:09
bon j'y vais donc je ne répondrais plus avant demain, bonne soirée et merci
0
crapoulou Messages postés 28160 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 21 mai 2024 7 999
28 janv. 2012 à 23:20
Tu veux afficher quoi au juste l'id ?
Si oui, il faut juste écrire :
echo 'Le numéro est : ' . $resultat;
0
noctua Messages postés 41 Date d'inscription samedi 1 septembre 2007 Statut Membre Dernière intervention 15 janvier 2013
29 janv. 2012 à 11:35
Merci beaucoup :)
0
crapoulou Messages postés 28160 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 21 mai 2024 7 999
29 janv. 2012 à 11:43
Pas de quoi, bonne journée.
0
noctua Messages postés 41 Date d'inscription samedi 1 septembre 2007 Statut Membre Dernière intervention 15 janvier 2013
Modifié par noctua le 29/01/2012 à 11:49
Un dernier coup de main possible? Ma boucle ne fonctionne pas :/
while ($ligne = $resultat2) 
    {
    echo '<b>'.$ligne['friend'];
    } 
0
crapoulou Messages postés 28160 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 21 mai 2024 7 999
Modifié par crapoulou le 29/01/2012 à 11:48
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).
0
noctua Messages postés 41 Date d'inscription samedi 1 septembre 2007 Statut Membre Dernière intervention 15 janvier 2013
29 janv. 2012 à 11:51
Merci, désolé je débute en PHP/SQL :/
0
crapoulou Messages postés 28160 Date d'inscription mercredi 28 novembre 2007 Statut Modérateur, Contributeur sécurité Dernière intervention 21 mai 2024 7 999
29 janv. 2012 à 11:53
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é.
0