Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: aspkiddy le le 13-06-2011 a 23:07:55

Titre: SQL jointures : requêtes avec plusieurs tables
Posté par: aspkiddy le le 13-06-2011 a 23:07:55

Bonsoir,

J'ai deux table avec la relation...

dans ma table :
tb_code_prmtn11_pub

j'ai 3 champs :
ID
fld_pub_id
fld_pub_description



dans ma table
tb_code_prmtn11

id_resultat
fld_pub_id
((FOREIGN KEY (`fld_pub_id`) REFERENCES `tb_code_prmtn11_pub` (`fld_pub_id`) ON DELETE NO ACTION ON UPDATE CASCADE,))


alors, je fais une requête SQL :


Code:
$req= " SELECT fld_pub_id,fld_pub_description
   FROM tb_code_prmtn11
   INNER JOIN tb_code_prmtn11_pub
   ON tb_code_prmtn11_pub.fld_pub_id = tb_code_prmtn11.fld_pub_id";



while($row=mysql_fetch_row($rep)){
$fld_pub_id=$row[0];
$fld_pub_description=$row[1];

echo " $fld_pub_id - $fld_pub_description";
}

voici le message d'erreur :
Column 'fld_pub_id' in field list is ambiguous:(

pourquoi ? vous avez des idées ?:rolleyes:

Titre: Re:SQL jointures : requêtes avec plusieurs tables
Posté par: Pad le le 14-06-2011 a 04:05:26

Il manque quelques lignes, mais c'est peut être toi qui les a enlevé en affichant le code et aussi pour la définitions des champs de chaque tables :


Code:

$req= " SELECT fld_pub_id,fld_pub_description
FROM tb_code_prmtn11 c // on nomme "c" la table
INNER JOIN tb_code_prmtn11_pub d // on nomme "d" la table
ON d.fld_pub_id = c.fld_pub_id"; // plus facile pour désigner les champs

$rep = mysql_query($req); // il te manque cette ligne !

while($row=mysql_fetch_row($rep)){
$fld_pub_id=$row[0];
$fld_pub_description=$row[1];

echo " $fld_pub_id - $fld_pub_description";
}

Titre: Re:SQL jointures : requêtes avec plusieurs tables
Posté par: aspkiddy le le 14-06-2011 a 14:27:04

Salut Pad,

ça ne change pas grande chose avec le code suivant :


Code:
<?php
         // on nomme "c" la table -->$table_db
         //on nomme "d" la table -->$table_db_pub
         // parceque plus facile pour désigner les champs
         $req= " select id_resultat,fld_pub_id,fld_pub_description
         FROM $table_db c
         INNER JOIN $table_db_pub d
         ON d.fld_pub_id = c.fld_pub_id";
         
         
         
         
          $rep = mysql_query($req, $cnx) or die( mysql_error() ) ;
          
         
         echo "<table border=\"1\">" ;
         

         while($row=mysql_fetch_row($rep)){
            $id_resultat=$row[0];
            $fld_pub_id=$row[1];
            $fld_pub_description=$row[2];
            
            
            
            
            echo "<tr><td>$id_resultat</td><td>
$fld_pub_id</td><td>
$fld_pub_description</td>
            
            
            
            </tr>" ;
                                     }
                                    echo "</table>" ;
                         
?>


j'ai toujours le même message d'erreur :

Column 'fld_pub_id' in field list is ambiguous ??? :(

Titre: Re:SQL jointures : requêtes avec plusieurs tables
Posté par: Pad le le 14-06-2011 a 20:51:47

pourquoi met tu des $ devant les tables ? "

FROM $table_db c
INNER JOIN $table_db_pub d

Titre: Re:SQL jointures : requêtes avec plusieurs tables
Posté par: aspkiddy le le 15-06-2011 a 14:31:36

merci pour cette idée... c'est bon et RÉSOLU...

à ton question : parce que mon variable contient le nom de ma table et qui se trouve dans un autre fichier et je fais l'appel par intermédiaire de "include"


Code:
$table_db = "nom_de_ma_table";


donc ce n'est pas le nom de ma table mais la variable qui contient le nom de ma table...


Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.