Requete sql

Résolu
Bonjour,

j'ai un problème de requete sql.
j'ai 3 table :
enseigne(idcommercant(clé primaire),nom,prenom,nomenseigne)
promotion(idpromo(clé primaire),titre,descriptif)
faire(idcommercant(clé étrangère),idpromo(clé étrangère))

je souhaite sortir de ces tables la requete qui me permettrais d'obtenir : le titre de la promation par rapport au nom de l'enseigne.

ps: je rentre au clavier le nom de l'enseigne.
clairement je souhaite obtenir le titre de la promotion par rapport au nom de l'enseigne que je rentre au clavier.

pouvez vous m'apporter vos lumière?
merci
Configuration: Windows Vista
Internet Explorer 7.0

10 réponses

  1. Contributeur
    select titre from enseigne, faire, promotion where enseigne.idcommercant=faire.idcommercant and promotion.idpromo=faire.idpromo and nomenseigne='cequetuveux';

    1
    1. je vous remerci, j'essai sa de suite.
      0
      1. Bonjour

        Je ne suis pas un expert mais d'après moi une seule requête sql ne peut pas faire ça.
        Je procéderai comme suit :

        récupérer l'ID de l'enseigne :
        SELECT idcommercant FROM enseigne WHERE nomenseigne='le_nom_demandé'

        puis récupérer le titre de la promotion en fonction de l'ID obtenu précédemment:
        SELECT titre FROM promotion WHERE idpromo='ID_obtenu_précédemment'
        0
        1. Contributeur
          Si si, avec une requête et des jointures, on y arrive (voir ma réponse plus haut).

          0
      2. j'ai essayé ta requete HostOfSeraphim, j'essaie de l'afficher avec un fetch_array mais j'ai l'erreur suivante Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in
        0
        1. Contributeur
          Fais un copier/coller de ton code ici (en retirant login/mdp/serveur de la base), tu as dû oublier quelque chose.

          0
      3. voila

        function ajout_promo()
        {
        /*Connexion*/
        $connexion=mysql_connect("localhost","root","")
        or die('Connexion refusée.');
        /*Sélection de la base de donnée*/
        $baseDeDonnee=mysql_select_db("essai",$connexion)
        or die('La sélection de la base de donnée a échoué.');

        $requete="select idpromo from promotion where lastp=1";
        $resultat=mysql_query($requete);

        $idpromo=mysql_result($resultat,0);
        $newId=$idpromo+1;

        $enseigne=$_POST['enseigne'];
        $titre = $_POST['titre'];
        $description = $_POST['description'];
        $datedeb = $_POST['datedeb'];
        $datefin = $_POST['datefin'];

        $requetec = "select idcommercant from enseigne where nomenseigne='".$_POST['enseigne']."'";
        $resultatc=mysql_query($requetec);
        //echo("$resultatc");

        if(!$resultatc){
        echo("je suis ici");
        $requeted='INSERT INTO promotion VALUES("'.$newId.'","'.$titre.'","'.$description.'","'.$datedeb.'","'.$datefin.'",1);';
        $resultatd=mysql_query($requeted) or die('Insertion non effectuée.');
        $requete='UPDATE promotion SET lastp=0 WHERE idpromo='.$idpromo;
        $resultat=mysql_query($requete)
        or die('Mise à jour du champs "last" impossible.');

        }
        else{
        echo("je suis dans le else");

        $sql="select promotion.titre, promotion.description, promotion.datedeb, promotion.datefin from enseigne, faire, promotion where enseigne.idcommercant=faire.idcommercant and promotion.idpromo=faire.idpromo and nomenseigne =''".$_POST['enseigne']."''; " or die("Erreur SQL : $query<br/>".mysql_error());
        //$res=mysql_query($sql) or die('Mise à jour du champs "last" impossible.');

        $res=mysql_query($sql);
        $tableau=mysql_fetch_array($res)or die("Erreur SQL : <br/>".mysql_error());

        echo '<tr><td>','titre : ', $tableau['titre'] ,'<br />','<tr><td>','description : ',$tableau['description '],'<br />','<tr><td>','date début : ',$tableau['datedeb'],'<br />','date fin : ',$tableau['datefin'];
        echo '<br />';
        0
        1. Contributeur
          $sql="select promotion.titre, promotion.description, promotion.datedeb, promotion.datefin from enseigne, faire, promotion where enseigne.idcommercant=faire.idcommercant and promotion.idpromo=faire.idpromo and nomenseigne =''".$_POST['enseigne']."''; " or die("Erreur SQL : $query<br/>".mysql_error());

          =>

          $sql="select promotion.titre, promotion.description, promotion.datedeb, promotion.datefin from enseigne, faire, promotion where enseigne.idcommercant=faire.idcommercant and promotion.idpromo=faire.idpromo and nomenseigne ='".$_POST['enseigne']."'; " or die("Erreur SQL : $query<br/>".mysql_error());

          0
      4. si tu peux m'aider sa serait sympa
        0
        1. Contributeur
          Voir ma réponse plus haut, tu avais un problème de guillemets visiblement.

          Par contre, essaye toujours la requête sur MySQL, ça permettra déjà de savoir si elle est comme tu la voulais ou non.

          0
      5. je n'ai plus d'eereur mysql_fetch mais cette erreur apparait : erreur sql

        l'erreur vient de cette ligne

        $tableau=mysql_fetch_array($res)or die("Erreur SQL : <br/>".mysql_error());
        0
        1. Contributeur
          Commence par vérifier la requête dans MySQL (PHPMyAdmin).

          0
      6. oui elle fonctionne la requete.
        0
        1. Contributeur
          OK.

          Heu, je viens de voir un truc : dans "or die", il manque un espace avant "or'...

          0
      7. j'ai mis un espace mais pas de changement
        0
        1. je te remercie beaucoup.
          ma requete fonctionne du tonnere ou plutot ta requete.
          merci !!!!!
          0
          1. Contributeur
            De rien. Trouvé ce qui n'allait pas dans le code PHP ?

            0