Hello,
Une question me retourne l'esprit... Si quelqu'un peut me filer un coup de main, ce serait génial.
Contexte
Je suis occupé à développer un catalogue de produits, en phpMySQL, pour ma boîte.
La structure est la suivante:
1 table "catégories"
A la manière d'un annuaire, les catégories sont reprises dans une table, et ont chacune un identifiant du style "numéro de catégorie" et "numéro de la catégorie à laquelle celle-ci appartient"...
1 table "produits"
Même principe, un produit est un groupe d'articles (j'expliquerai plus bas), qui appartient à une ou plusieurs catégories; la structure est simple, et composée de "id_produit", "appartenance1", "appartenance2", etc...
Jusque là, c'est assez simple d'afficher des catégories et leurs sous-catégories, et de naviguer jusqu'à une catégorie qui contient des produits, où on finit par
Ma difficulté apparaît ici:
Pour chaque "produit", il y'a un ou plusieurs "articles" (les références commercialisables).
Je souhaite grouper tous les articles dans une même table "articles", ce qui jusqu'ici n'est pas complexe...
Je finis donc avec une requête "SELECT * FROM articles WHERE into_produit = $produit (etc...)"
Problème
J'ai énormément de produits différents, et je souhaite afficher des informations techniques qui sont variables.
Par exemple: pour des cosses électriques, je vais parler de "diamètre", de "couleur", de "section"; alors que pour des lampes je vais parler de "voltage", "wattage", "ampérage", "culot"...
Sachant que je souhaite que toutes ces données figurent dans une table "articles" unique, je vais utiliser une table contenant un grand nombre de "colonnes", dont une grande partie sera vide...
Ma question est la suivante:
Pour chaque "produit", je fais une requête qui me sort la liste des "articles" correspondant à ce "produit". Le résultat pourrait donner (exemple "cosse électrique"):
REF.0001 | vide | vide | vide | vide | 3.0mm | rouge | 8mm² | vide | vide |
et pour un autre article (exemple "ampoule"):
REF.0002 | 12V | 55W | 0.5A | vide | vide | vide | vide | vide | vide |
Je cherche à n'afficher dans mon résultat QUE les colonnes non-vides, sachant que pour un même produit, on peut aussi avoir un résultat du style...
REF.0002 | 12V | 55W | 0.5A | vide | vide | vide | vide | vide | vide |
REF.0003 | 12V | 55W | vide | vide | vide | vide | vide | vide | vide |
REF.0004 | 12V | vide | vide | vide | vide | vide | vide | vide | vide |
En gros, afficher un tableau du genre:
bref... j'espère que vous comprenez mon tourment...
Est-ce que quelqu'un aurait une solution "pratique" et "non-gourmande" ?
Merci !!![/img]
Une question me retourne l'esprit... Si quelqu'un peut me filer un coup de main, ce serait génial.
Contexte
Je suis occupé à développer un catalogue de produits, en phpMySQL, pour ma boîte.
La structure est la suivante:
1 table "catégories"
A la manière d'un annuaire, les catégories sont reprises dans une table, et ont chacune un identifiant du style "numéro de catégorie" et "numéro de la catégorie à laquelle celle-ci appartient"...
1 table "produits"
Même principe, un produit est un groupe d'articles (j'expliquerai plus bas), qui appartient à une ou plusieurs catégories; la structure est simple, et composée de "id_produit", "appartenance1", "appartenance2", etc...
Jusque là, c'est assez simple d'afficher des catégories et leurs sous-catégories, et de naviguer jusqu'à une catégorie qui contient des produits, où on finit par
Code:
$query = "SELECT * FROM produits WHERE appartenance1 = $categorie OR appartenance2 = $categorie (etc...)
Ma difficulté apparaît ici:
Pour chaque "produit", il y'a un ou plusieurs "articles" (les références commercialisables).
Je souhaite grouper tous les articles dans une même table "articles", ce qui jusqu'ici n'est pas complexe...
Je finis donc avec une requête "SELECT * FROM articles WHERE into_produit = $produit (etc...)"
Problème
J'ai énormément de produits différents, et je souhaite afficher des informations techniques qui sont variables.
Par exemple: pour des cosses électriques, je vais parler de "diamètre", de "couleur", de "section"; alors que pour des lampes je vais parler de "voltage", "wattage", "ampérage", "culot"...
Sachant que je souhaite que toutes ces données figurent dans une table "articles" unique, je vais utiliser une table contenant un grand nombre de "colonnes", dont une grande partie sera vide...
Ma question est la suivante:
Pour chaque "produit", je fais une requête qui me sort la liste des "articles" correspondant à ce "produit". Le résultat pourrait donner (exemple "cosse électrique"):
REF.0001 | vide | vide | vide | vide | 3.0mm | rouge | 8mm² | vide | vide |
et pour un autre article (exemple "ampoule"):
REF.0002 | 12V | 55W | 0.5A | vide | vide | vide | vide | vide | vide |
Je cherche à n'afficher dans mon résultat QUE les colonnes non-vides, sachant que pour un même produit, on peut aussi avoir un résultat du style...
REF.0002 | 12V | 55W | 0.5A | vide | vide | vide | vide | vide | vide |
REF.0003 | 12V | 55W | vide | vide | vide | vide | vide | vide | vide |
REF.0004 | 12V | vide | vide | vide | vide | vide | vide | vide | vide |
En gros, afficher un tableau du genre:
bref... j'espère que vous comprenez mon tourment...
Est-ce que quelqu'un aurait une solution "pratique" et "non-gourmande" ?
Merci !!![/img]