Requete de selection avec jointure

Résolu
kchaw Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
 kchaw -
Bonjour,

j'ai 3 tables : client(id,nom,prenom,adresse,..) , article(cod_art , lib_art ,qte_art , dat_liv prix, famille_art ) et commande ( idcmd , lib_art ,quantite_cmd , nom , prenom ,date ) avec nom et prenom sont des attributs de client et lib_art de article. je veut afficher dans un formulaire le lib_art,quantite_cmd,nom client,prenom,prix et date. voici ma requete
{ $requete="SELECT CM.lib_art,quantite_cmd,CM.nom,CM.prenom,date FROM commande CM,client CL,article ART where CM.lib_art = ART.lib_art and CM.nom=CL.nom and CM.prenom = CL.prenom and prix= ("SELECT prix From article WHERE CM.lib_art=ART.lib_art") ";}
et ca affiche une erreur : Parse error: parse error

1 réponse

Utilisateur anonyme
 
salut,
j'espère pouvoir t'aider car je n'ais que quelques bases dans se domaine.
je verrais plutot un truc comme ça,
{ $requete="SELECT commande.lib_art, commande.quantite_cmd, commande.nom, commande.prenom, prix, date FROM commande, client, article WHERE commande.lib_art=article.lib_art AND commande.nom=client.nom AND commande.prenom=client.prenom AND prix=("SELECT prix FROM article WHERE article.lib_art=commande.lib_art") ";}

mais comment tu choisi l'article specifique a affiché?
car la tu dit que article.lib_art est égal a commande.lib_art mais tu ne precise pas a quoi correspond commande.lib_art.

genre "commande.lib_art=$POST ou $GET ou $DATA[numero de l'article]".
0
kchaw
 
je veut faire un affichage de tous les articles dont le nom existe dans la table commande
0
Utilisateur anonyme
 
il faut faire une boucle,si je ne me trompe pas ça va afficher tous les articles de la table commande,

$sql = 'SELECT lib_art, quantite_cmd, nom, prenom, prix, date FROM commande ORDER BY lib_art ASC ';
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());


while ($data = mysql_fetch_array($req)) {


echo $data['lib_art'], $data['nom'], $data['prenom'], $data['prix'] ;
}


et pourquoi faire une jointure sur le nom et prenom,a la limite tu met simplement l'id dans la table commande et tu fait la jointure

"SELECT client.nom, client.prenom FROM client WHERE client.id=commande.id"

je ne sais pas si ça t'aide.
0
kchaw
 
merci,pour votre réaction a propos de ma question
0
kchaw
 
merci, j'ai corrigé et c'est bien marché. encore merci
0