Page 1 sur 1

aide sur select

Posté : 24 févr. 2009, 19:54
par stefanelle
Bonjour,

J ai une base qui contient deux tables :

- une table label (deux champs : id_label (auto-increment) et nom_label
- une table contenu (5 champs : id_label, reference, artiste, album, contenu)

un $sql1= "SELECT nom_label FROM label Where nom_label='".$_POST['nom_label']."' "; avec un $req1

et un $sql2 "SELECT reference, artiste, album, format FROM contenu " ; avec $req2

sauf que je ne peux mettre qu une seule requete dans mon while du coup il n affiche que l u ou l autre ...

Posté : 24 févr. 2009, 22:03
par alaingpl
essaye ceci :
$sql1= "SELECT nom_label FROM label Where nom_label='".$_POST['nom_label']."' "; 

$req1 = mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());
while( $result1 = mysql_fetch_array($req1)) 
        { 
            
		   
           echo '  '.$result1[champ de ta table].'    ';
        }

$sql2 "SELECT reference, artiste, album, format FROM contenu " ;
$req2 = mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
while( $result2 = mysql_fetch_array($req2)) 
        { 
            
		   
           echo '  '.$result2[champ de ta table].'    ';
        }


Posté : 24 févr. 2009, 22:10
par Ryle
Et pourquoi pas faire une jointure entre tes deux tables ? :)
$sql = "SELECT nom_label, reference, artiste, album, format 
  FROM label, contenu
  WHERE label.id_label = contenu.id_label
  AND nom_label='".mysql_real_escape_string($_POST['nom_label'])."' ";

Posté : 25 févr. 2009, 00:13
par stefanelle
Merci de votre aide :lol: voila comment j ai fait finalement

$sql1 = "SELECT contenu.reference, contenu.artiste, contenu.album, contenu.format, label.nom_label FROM contenu, label WHERE label.id_label = contenu.id_label AND label.nom_label = '".$_POST

['nom_label']."' ";

$req1= mysql_query($sql1) or die( mysql_error() ) ;

Posté : 25 févr. 2009, 15:48
par Aureusms
Bonjour Stephanelle,

Je reprends le conseil de Ryle : Protège ta variable POST via mysql_real_escape_string ou addsalshes ce qui donnera (au choix)
$sql1 = "SELECT contenu.reference, contenu.artiste, contenu.album, contenu.format, label.nom_label FROM contenu, label WHERE label.id_label = contenu.id_label AND label.nom_label = '".addslashes($_POST['nom_label'])."' "; 
$sql1 = "SELECT contenu.reference, contenu.artiste, contenu.album, contenu.format, label.nom_label FROM contenu, label WHERE label.id_label = contenu.id_label AND label.nom_label = '".mysql_real_escape_string($_POST['nom_label'])."' ";