besoin aide pour requête

besoin aide pour requête - PHP - Programmation

Marsh Posté le 05-12-2007 à 14:59:45    

Bonjour, voilà mon souci:
Dans Dreamweaver, je voudrais faire un jeu d'enregistrement où je récupererai des infos de 2 tables mais je dois faire erreur!!!
Voici le détail des 2 tables concernées:
 
article
Commentaires sur la table: InnoDB free: 4096 kB
 
Champ Type Null Défaut Commentaires  
reference  smallint(6) Non    
nom  varchar(100) Non    
boutiqueID  tinyint(4) Non    
epoque  varchar(20) Oui NULL  
taille  varchar(50) Oui NULL  
description  text Non    
mesure  text Non    
prix  
 
listeCommentaires sur la table: InnoDB free: 4096 kB
 
Champ Type Null Défaut Commentaires  
ID  smallint(6) Non    
commandeID  smallint(6) Non    
reference  smallint(6) Non    
quantite  tinyint(4) Non    
prixArticle  decimal(10,2) Non    
 
mon jeu d'enregistrement concerne la table liste mais je voudrai que la "référence" de la table liste corresponde au champ "nom" de la table article or actuellement dans l'aperçu, ça me donne exemple "référence 24" qui est répétée autant de fois qu'il y a d'articles avec tous les noms différents qu'il y a dans ma table article!!!
La requête SQL est la suivante:  
 

Code :
  1. SELECT liste.reference, liste.quantité, liste.prixArticle, article.nom
  2. FROM liste, article
  3. WHERE commandeID=colname
  4. ORDER BY reference ASC


La variable est : "Nom:colname; Valeur par défaut:-1; Valeur d'exécution:$_GET['commandeID']
 
Merci pour votre aide; c'est urgent
 
 
 
 

Reply

Marsh Posté le 05-12-2007 à 14:59:45   

Reply

Marsh Posté le 05-12-2007 à 16:03:31    

Jointure.
 

Code :
  1. SELECT liste.reference, liste.quantité, liste.prixArticle, article.nom
  2. FROM liste INNER JOIN article ON liste.reference = article.reference
  3. WHERE commandeID=colname
  4. ORDER BY reference ASC


 
Edit : tien, la balise spoiler ne fonctionne pas avec la balise code !  :o


Message édité par kao98 le 05-12-2007 à 16:04:42

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 05-12-2007 à 16:57:28    

Tu obtiens ce que l'on appelle un produit cartésien et tu dois correctement définir ta jointure pour l'éviter.
 
Soit de la manière dont kao98 te le propose ici, soit à la "oldschool" en liant tes IDs :  
 

Code :
  1. SELECT liste.reference, liste.quantité, liste.prixArticle, article.nom
  2. FROM liste, article
  3. WHERE liste.reference=article.reference  
  4. and commandeID=colname
  5. ORDER BY reference ASC

Reply

Marsh Posté le 05-12-2007 à 17:00:56    

merci beaucoup, ça marche!!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed