Jointure en php

Salut,

Je voudrai savoir comment on fait 1 jointure entre 2 tables en php
car ce que je fé moi, ca marche pas:

$sql="Select nomclient, nomproduit from Client, Produit
where Client.refclient=Produit.refclient";

Merci

9 réponses

  1. pour elodie

    utilise ceux ci:
    SELECT nomclient,nomproduit
    FROM Client INNER JOIN Produit
    ON Client.refclient=Produit.refclient
    WHERE //votre condition pour ceet requete

    test le après
    3
    1. j'ai un forum a faire en php postgresql j'ai petit soucis j'ai deux table sql l'une identifiant et nom du sujet et l'autre identifiant du sujet et message j'aimerai pouvoir sortir le message de la deuxieme table en connaissan le nom du sujet tout cela en php j'ai essayé cela : $query = "SELECT message FROM Sujet, Message WHERE num_sujet = num_sujet";
      ca marche pas donc je c plus koi faire
      2
      1. Bonjour :)

        Tu dois avoir une ambigüité dans ta requête. Essaie de préfixer les champs avec les tables comme ceci :
        $query = "SELECT message FROM Sujet, Message WHERE Sujet.num_sujet = Message.num_sujet";
        0
    2. "$sql="Select nomclient, nomproduit from Client, Produit
      where Client.refclient=Produit.refclient"; "

      Dans la requete il y a une selection particulière de colonnes (nomclient, nomproduit ) et ensuite il y a une jointure sur refclient or reclient n'a pas été selectionné.

      $sql="Select nomclient,refclient, nomproduit from Client, Produit
      where Client.refclient=Produit.refclient";

      ou

      $sql="Select * from Client, Produit
      where Client.refclient=Produit.refclient";

      Le sujet date mais si ça peut aider d'autres personnes.
      2
      1. Bah la syntaxe général est bonne mais t'oublie les majuscule la.
        Faut faire
        SELECT nomclient, nomproduit FROM Client, Produit
        WHERE Client.refclient=Produit.refclient

        Et la ca devrait marcher.
        0
        1. sha : les commandes SQL sont insensibles à la casse. Les majuscules ne devrait avoir aucun rôle à jouer là-dedans.
          En revanche, les noms de tes champs et tables doivent avoir la bonne casse.

          elodie : La syntaxe de ta requete est correcte. Exécute-la et affiche les erreurs que tu as :

          $sql = "SELECT nomclient, nomproduit FROM Client, Produit
          WHERE Client.refclient=Produit.refclient";
          print $sql."<br>";
          $res = mysql_query($sql) or die ("Erreur : ".mysql_error());

          0
          1. Bobinours... comment peux-tu savoir qu'elodie utilise MySQL????
            (ca peut tout aussi bien etre Sybase, Postgres ou interbase pour ne citer qu'eux ;-)
            0
        2. comment on fait 1 jointure entre 2 tables en php

          La réponse est : IMPOSSIBLE !

          Tu confonds PHP et SQL selon moi ;)

          Pour t'aider a résoudre ton probleme, il faut que tu spécifies quel SGBD tu utilises sinon cest impossible de taider a écrire ta requete SQL !
          0
          1. filipo:Bobinours c que j'utilise mysql car ce n'est pas la premiere fois que je lui demande conseil. c tout.
            Et pour reprendre ta réflexion, "Tu confonds PHP et SQL selon moi ;) ", c que moi je me sui comprise et je c trè bien la diférence qu'il y a. T'auré pus me demandé une explication aulieu de monté sur té grand chevo :)

            Bobinours: Merci, ta propposition ma aidé et g réussi a faire fonctionner ma requête.
            Mé g toujours pa compris pourkoi elle marché pas hier mé ce matin oui. Peu etre qu'1 nuit de sommeil ma fé du bien.
            0
            1. filipo : voilà :-)

              Ceci dit, elodie, que tu te comprennes, c'est bien, mais que les autres te comprenne, c'est mieux :o)

              pourkoi elle marché pas hier mé ce matin oui.

              Aaaaah... Les mystères de l'informatique... :-)
              0
              1. "les commandes SQL sont insensibles à la casse. Les majuscules ne devrait avoir aucun rôle à jouer là-dedans"

                Euh, je suis désolé mais, en SQL sous oracle, les commandes SQL sont très sensibles a la casse.
                0