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   -
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

  1. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
     
    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
  2. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
     
    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
  3. noctua Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  4. noctua Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
     
    $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
  7. noctua Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
     
    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
  8. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
     
    $data = mysql_fetch_array($resultat2);
    $resultat2 et non pas $resultat.
    0
  9. noctua Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
     
    j'avais deja modifié :/
    0
  10. noctua Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
     
    bon j'y vais donc je ne répondrais plus avant demain, bonne soirée et merci
    0
  11. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
     
    Tu veux afficher quoi au juste l'id ?
    Si oui, il faut juste écrire :
    echo 'Le numéro est : ' . $resultat;
    0
  12. noctua Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci beaucoup :)
    0
  13. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
     
    Pas de quoi, bonne journée.
    0
  14. noctua Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
     
    Un dernier coup de main possible? Ma boucle ne fonctionne pas :/
    while ($ligne = $resultat2) 
        {
        echo '<b>'.$ligne['friend'];
        } 
    
    0
    1. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
       
      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
  15. noctua Messages postés 52 Date d'inscription   Statut Membre Dernière intervention  
     
    Merci, désolé je débute en PHP/SQL :/
    0
    1. crapoulou Messages postés 28002 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   8 046
       
      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