fred6655
Messages postés5Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention20 octobre 2005
-
19 oct. 2005 à 14:48
aieeeuuuuu
Messages postés698Date d'inscriptionjeudi 16 janvier 2003StatutMembreDernière intervention20 mai 2011
-
20 oct. 2005 à 17:20
Bonjour,
J'ai un problème avec une requete sur ma base sql. J'ai 3 tables :
artiste (idartiste, artpseudo), marque (idmarque, marnom), produit
(idartiste, idmarque, pronom).
Un produit peut appartenir à un artiste OU à une marque. Pour sélectionner les fiches je fais donc :
$Resultat = mysql_query("SELECT DISTINCT produit.idproduit,
produit.pronom, produit.idartiste, produit.idmarque, artiste.idartiste,
artiste.artpseudo, marque.idmarque, marque.marnom FROM produit,
artiste, marque WHERE produit.idartiste LIKE artiste.idartiste
AND produit.idartiste>'0' OR produit.idmarque LIKE marque.idmarque
AND proetat='1' AND produit.idmarque>'0' ORDER BY pronom");
Le problème est que les produits des artistes apparaissent autant de
fois qu'il y a de marque et inversemment pour les produits des marques.
Pour être plus clair, s'il y a 10 marques, un produit d'artiste va
apparaitre 10 fois. Dois-je faire 2 requêtes pour éviter ce problème ?
Et si oui comment ensuite trier l'ensemble des 2 requêtes par le nom du
produit (pronom) ?
fred6655
Messages postés5Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention20 octobre 2005 20 oct. 2005 à 11:46
Maintenant le problème est qu'il me met tous les enregistrements
idmarque dans idartiste de sorte que lorsque je fais echo
$result[idmarque], je n'ai rien...Mais lorsque je fais afficher les
idartistes il me mets même les identifiants marque...
Lorsqu'on utilise union, faut-il employer une autre syntaxe pour l'affichage des résultat ?
fred6655
Messages postés5Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention20 octobre 2005 20 oct. 2005 à 15:15
Alors je dois mal m'y prendre parce que l'idmarque n'est toujours pas trouvé. J'utilise ceci :
SELECT produit.idproduit, produit.pronom, produit.idartiste, artiste.idartiste, 0, 0
FROM produit, artiste
WHERE produit.idartiste LIKE artiste.idartiste
UNION
SELECT produit.idproduit, produit.pronom, 0, 0, produit.idmarque, marque.idmarque
FROM produit, marque
WHERE produit.idmarque LIKE marque.idmarque
Et pour les produits correspondant aux marques j'ai : <!--StartFragment --> Undefined index: idmarque que je mette 0 ou '' c'est pareil...