Requete de selection avec jointure

Résolu/Fermé
kchaw Messages postés 1 Date d'inscription vendredi 1 avril 2011 Statut Membre Dernière intervention 1 avril 2011 - 1 avril 2011 à 03:37
 kchaw - 7 avril 2011 à 16:58
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
1 avril 2011 à 08:03
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
je veut faire un affichage de tous les articles dont le nom existe dans la table commande
0
Utilisateur anonyme
1 avril 2011 à 14:36
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
merci,pour votre réaction a propos de ma question
0
merci, j'ai corrigé et c'est bien marché. encore merci
0