poulap
Messages postés2Date d'inscriptionjeudi 22 avril 2010StatutMembreDernière intervention22 avril 2010
-
22 avril 2010 à 15:51
poulap
Messages postés2Date d'inscriptionjeudi 22 avril 2010StatutMembreDernière intervention22 avril 2010
-
22 avril 2010 à 15:55
Bonjour,
Je dois implémenté une solution permettant de gérer plus efficacement le stock d'un site de vente en ligne.
Sachant que le site propose des packs. Un pack est un produit qui contient lui même d'autre produits. Exemple : Une chambre de bébé contient un lit, une commode, ...
Il faut prendre en considération également que le client peut choisir entre différentes options pour chaque packs, un lit 60-120 OU un lit 70-140, une commode 3 tiroirs OU une commode 2 portes, 1 tiroir, ...
J'ai crée une base de donnée qui doit répondre au problème, ou plutôt adapté une base de donnée existante.
COMMANDE (Com_id, Prix_total_calculé, client_id)
avec client_id => type INDEX relié a ClientBoutique->CodeClient ON DELETE CASCADE
Produit (products_id, ... , Vendable(true/false))
INCLUT (Com_id, products_id, Quantité)
avec Com_id => type INDEX relié a COMMANDE->Com_id ON DELETE CASCADE
avec products_id => type INDEX relié a Produit->products_id ON DELETE CASCADE
COMPOSE(Master_id, Master_slave, Obligatoire(true/false), Nombre)
avec Master_id => type INDEX relié a Produit-> products_id ON DELETE CASCADE
avec Slave_id=>type INDEX relié a Produit-> products_id ON DELETE CASCADE
Je me suis pas occupé encore de la table OPTION
Ensuite j'ai remplit les nouvelles tables que j'ai créées pour faire des tests.
Et maintenant j'essaye de faire le script permettant de defalquer le stock correctement en fonction d'une commande d'un client
//COMMANDE d'un client d'une Chambre Bebe Childwood Country Stone Grey
/* Commode 3 tiroirs
Matelas TENCEL
Lit 60-120 */
//inserer chambre dans la table INCLUT
$inser1 = mysql_query("INSERT INTO INCLUT ( Com_id, products_id, Quantite, Prix) VALUES ( '12', '530', '1', '1499')");
$inser2 = mysql_query("INSERT INTO INCLUT ( Com_id, products_id, Quantite, Prix) VALUES ( '12', '526', '1', '40')");
$inser3 = mysql_query("INSERT INTO INCLUT ( Com_id, products_id, Quantite, Prix) VALUES ( '12', '529', '1', '0')");
$inser4 = mysql_query("INSERT INTO INCLUT ( Com_id, products_id, Quantite, Prix) VALUES ( '12', '221', '1', '0')");
$sel mysql_query("SELECT products_id FROM INCLUT WHERE Com_id '12'");
for ($i=0; $i<("SELECT COUNT(*) FROM INCLUT WHERE Com_id ='12'"); $i++){
$row = mysql_fetch_array ($sel);
$up "UPDATE products SET products_qt products_qt -1 WHERE products_id = '".$row[$i]."'";
}
Ce code ne marche pas. Les données sont insérées dans la table INCLUT mais le stock n'est pas déflaquer.
Je me demande d'abord si la solution que j'ai mise en place et adéquate? s'il n'y pas des correctifs a faire ?
Et enfin où est l'erreur dans mon code ? et quelles amélioration sont possibles?