Php mysql recherche dans plusieurs tables dans une seule requête

Résolu
Bonjour,

Dans un formulaire l'utilisateur choisi un numéro ce numéro est l'ide d'un nom pour le traitement du formulaire il faut associer le nom à l'ID sélectionné dans la liste déroulante cela donne une requête comme SELECT nom FROM logiciel WHERE id_nom = '$id_logiciel'.
Dans le formulaire il y a une deuxième liste déroulante sélectionnant l'ID d'une catégorie, dans le traitement du formulaire il faut donc faire correspondre l'ID de la catégorie au nom de la catégorie correspondante à l'ID donc requête du genre SELECT nom FROM categorie WHERE id = '$id_categorie' mais comment traiter ces deux requête en une seule ?

merci d'avance

2 réponses

  1. Bonjour,

    SELECT nom from logiciel NATURAL JOIN categorie where id= '$id_categorie' AND id_nom = '$id_logiciel';
    0
    1. après une boucle pour récupérer les valeur, les valeur issues de la première table son bien récupérées mais pas celle de la deuxième table
      0
      1. Il faudra les récupérer en même temps, les valeurs des 2 tables sont sur la même ligne ;)
        0
      2. elle sont déjà récupérées en même temps (je crois) :

        // on crée la requete SQL
        $sql = "SELECT categorie from categorie NATURAL JOIN sous_categorie where id_sous_categorie= '$sous_categorie' AND id_categorie = '$categorie'";
        
        // on envoie la requête
        $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 
        
        // on fait une boucle qui va faire un tour pour chaque enregistrement
        while($data = mysql_fetch_array($req)) 
            {
           $categorie = $data['categorie'];
           $sous_categorie = $data['sous_categorie'];
            // on affiche les informations de l'enregistrement en cours
            } 
        0
      3. Et dans $sous_categorie tu as quoi comme valeur ?
        0
      4. echo $sous_categorie; donne rien donc la valeur est vide
        0
      5. En en faisant la même requête avec un client MySQL classique, même constat où tu as bien un résultat ?
        0