etudianto Posté 27 Juin 2004 Posté 27 Juin 2004 (modifié) 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é 27 Juin 2004 par etudianto
Anonymus Posté 27 Juin 2004 Posté 27 Juin 2004 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.
bshop Posté 28 Juin 2004 Posté 28 Juin 2004 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.
etudianto Posté 28 Juin 2004 Auteur Posté 28 Juin 2004 (modifié) Merci pour tout ça . Modifié 28 Juin 2004 par etudianto
etudianto Posté 29 Juin 2004 Auteur Posté 29 Juin 2004 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 ?
Vincent Posté 29 Juin 2004 Posté 29 Juin 2004 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. <?phpif ($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 ...
etudianto Posté 29 Juin 2004 Auteur Posté 29 Juin 2004 ecris tout en php, cela sera plus clair. <?phpif ($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 ! 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é...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant