Page 1 sur 1

Gestion des tailles d'un produit MYSQL

Posté : 02 oct. 2010, 16:10
par Bluefish
Bonjour,

j'ai une question qui me taraude...

sur une boutique en ligne, je créé ma table produits dans ma bdd sql. Par exemple pour un produit j'ai 3 tailles différentes, disons M,L et XL.
Je dois crée 3 références différentes pour chaque taille (3 prod_id en auto-increment), ce qui me servira à gérer mes stocks plus facilement.

Mon pb est le suivant, sur le front de la boutique, quand je vais afficher le listing des produits via une requete (select * from produits) , cela va m'afficher 3 fois le même produits puisque 3 tailles différentes.

Comment puis-je gérer ca?

Merci, Ju.

Re: Gestion des tailles d'un produit MYSQL

Posté : 02 oct. 2010, 19:14
par stealth35
tu peux faire ca avec GROUP BY, tu groupes sur le numéro ou le nom du produit

Re: Gestion des tailles d'un produit MYSQL

Posté : 02 oct. 2010, 22:28
par Ryle
Evite le "select * " si tu n'as pas besoin de tout les champs (et accessoirement pour des questions de maintenance, il est plus facile de savoir ce que retourne la requête et dans quel ordre quand c'est explicite ;)) et pour éviter les doublons, tu peux utiliser l'instruction DISTINCT dans ta requête :)

Re: Gestion des tailles d'un produit MYSQL

Posté : 03 oct. 2010, 05:15
par stealth35
Evite le "select * " si tu n'as pas besoin de tout les champs (et accessoirement pour des questions de maintenance, il est plus facile de savoir ce que retourne la requête et dans quel ordre quand c'est explicite ;)) et pour éviter les doublons, tu peux utiliser l'instruction DISTINCT dans ta requête :)
DISTINCT ca rend qu'une colonne

Re: Gestion des tailles d'un produit MYSQL

Posté : 03 oct. 2010, 10:46
par Ryle
DISTINCT ca rend qu'une colonne
Nanan, le distinct s'applique sur l'ensemble des colonnes demandées :) Si tu fais un "SELECT DISTINCT a, b FROM ..." tu récupères la liste des couples a/b sans doublons, même si plusieurs enregistrements ont les mêmes valeurs a,b et des valeurs différentes (ou non) dans les autres colonnes... ;)

Et à mon sens, il faut faire attention avec le GROUP BY, car MySQL est très permissif quant à l'usage de celui-ci, ce que les autres bases de données ne feront pas. (En théorie, tu ne devrait pas pouvoir faire un group by si tu n'utilises pas de fonction de groupe sur au moins l'une des colonnes retournée, de même le group by devrait lister l'exhaustivité des colonnes non groupés, etc.)

Re: Gestion des tailles d'un produit MYSQL

Posté : 04 oct. 2010, 14:26
par 5c83c
Merci pour vos réponses, mais je crois que je vais parader plus simplement, mon problème est plus dans la partie front que dans la partie backoffice.

Je vais rajouter une colonne dans ma table produits qui indiquera si c'est un produit parent (valeur 1), les mêmes produits de tailles différentes seront des produits fils (valeur 0). Donc en listing produits je n'afficherai que ceux qui sont parents, jusqu'ici tout va bien. Ensuite, quand je vais choisir une taille sur ma fiche produit, et bien la ref de ce produit change, ma requête devra indiquer d'aller chercher une ref différente donc, et le problème a commencé là :)

La solution, j'indiquerai dans ma requête d'aller chercher le produit qui a la même description et le même titre par exemple , mais avec la taille qui va bien., tout simplement...

C'est con au final...après chacun ses logiques.