Aller au contenu

BDD tables


etudianto

Sujets conseillés

Bonjour, petite question technique.

J'aimerai savoir comment se présente les tables et les champs dans une base de donnée pour des articles présentés dans un catalogue ayant des couleurs ou tailles différentes par exemple. Pour un même article on peut choisir une couleur ou taille avec un menu, doit on insérer dans la table chaque article couleur et taille différente ou quelle solution peut on avoir avec d'autre(s) tables ?

Merci ;) .

( j'ai posté ici car ce sont des méthodes qu'on retrouve dans l'e-commerce).

Modifié par etudianto
Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

Il y a plusieurs solutions. La meilleure, a priori, est de faire deux tables séparées. Une pour l'article, et une pour la couleur. Entre les deux, tu fais une table de 'jointure', qui servira de liaison entre les 2.

Pour bien comprendre le principe, tu devrais lire l'article présent dans les publications, très accessible : http://www.webmaster-hub.com/publication/article68.html

Donc : on ne fait qu'un enregistrement pour chaque couleur, et qu'un enregistrement pour chaque article.

ps : s'il est vrai que ce sont des méthodes que l'on retrouve dans l'e-commerce, il est vrai également que l'on retrouve ces méthodes dans toutes bases de données, donc j'ai déplacé le sujet dans la partie 'programmation'. ;)

Anonymus.

Lien vers le commentaire
Partager sur d’autres sites

Hello ,

voici comment nous travaillons concernant les BDD produits :

- une table principale produits qui permet de saisir les infos generales du produit (quantité, modele, image etc ...)

- une table description_produit pour saisir les infos concernant le produit : pourquoi une autre table ? car si tu travailles en multilangue tu auras besoin de stocker +ieurs descriptions par produit

- une table options_produits qui gere les options possibles (taille, couleur etc..)

- une table valeurs_options_produits pour stocker les différentes valeurs possibles du produit (par exemple couleur : noire , rouge , etc...ainsi que le tarifs associés) ...

Apres il n'y a pas UNE solution, tout est envisageable ...

Je te conseille de faire un MCD avant tout developpement.

Lien vers le commentaire
Partager sur d’autres sites

Le problème qui se pose maintenant est le suivant :

j'ai un menu déroulant dans lequel s'affichent dynamiquement mes couleurs disponibles par article dans la BDD.

<option value="<?php echo $row_couleurs['id']?>"

<?php if (!(strcmp($row_couleurs['id'], $row_id_couleur['id_couleur']))) {echo "SELECTED";} ?>>

<?php echo $row_couleurs['couleur']?></option>

            <?php

} while ($row_couleurs = mysql_fetch_assoc($couleurs));

  $rows = mysql_num_rows($couleurs);

  if($rows > 0) {

      mysql_data_seek($couleurs, 0);

$row_couleurs = mysql_fetch_assoc($couleurs);

  }

?>

            </select>

Le code d'envoi par méthode post :

<form name="form1" method="post" action="page1.php?id=<?php echo $row_article['id']; ?>&taille=<?php echo $row_aff_tailles['taille']; ?>">

Il se trouve que je récupère toujours la première couleur de la liste déroulante et pas celle sélectionnée.

Faut t'il du javascript pour actualiser la selection ?

Lien vers le commentaire
Partager sur d’autres sites

if (!(strcmp($row_couleurs['id'], $row_id_couleur['id_couleur'])))

Pour ma part, je ne vois pas l'utilité de compliquer la chose en faisant une comparaison de type 'string' alors que les id, pour moi, sont censé être des numériques... je le remplacerais par ceci :

if ($row_couleurs['id'] != $row_id_couleur['id_couleur'])

Et je ne comprends pas ... si ta comparaison est fausse, alors tu veux ecrire 'SELECTED' , ce n'est pas plutot l'inverse qui est voulu?

autre chose qui prete a confusion, c'est ce genre de truc en fin de ligne :

 ?>>

ecris tout en php, cela sera plus clair.

<?php
if ($row_couleurs['id'] != $row_id_couleur['id_couleur']){
 $selected = "SELECTED";
else
 $selected = "";
echo "<option value="$row_couleurs['id'] $selected>$row_couleurs['couleur']</option>";

j'ai pas tout compris pour ta boucle a la fin... mais cela ne m'a pas l'air très net ...

Lien vers le commentaire
Partager sur d’autres sites

ecris tout en php, cela sera plus clair.

<?php
if ($row_couleurs['id'] != $row_id_couleur['id_couleur']){
 $selected = "SELECTED";
else
 $selected = "";
echo "<option value="$row_couleurs['id'] $selected>$row_couleurs['couleur']</option>";

J'ai essayé ça et ça marche pas ! :rolleyes:

j'ai pas tout compris pour ta boucle a la fin... mais cela ne m'a pas l'air très net ...

Cette partie est développée avec dreamweaver d'ou la complexité...

J'ai essayé ça et ça marche pas !

j'ai pas tout compris pour ta boucle a la fin... mais cela ne m'a pas l'air très net ...

Ma liste est développée avec dreamweaver d'ou surement la complexité...

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...