[RESOLU] Problème d'enregistrement du contenu d'un panier PHP/MySQL

Cos
Invité n'ayant pas de compte PHPfrance

21 déc. 2006, 18:35

Bonjour,

Je réalise actuellement un site de vente en ligne fictif, qui comprend un back office permettant de gèrer les commandes passées par les clients.

Mon problème se situe au niveau de l'enregistrement du contenu d'un panier dans la base de données.
J'ai une table "commande" qui contient un champ id_produit et un champ id_commande, et je ne vois pas comment faire pour enregistrer plusieurs id_produit (si le panier contient plusieurs produits) sous un même id_commande.

A l'heure actuelle, lorsqu'il y a plusieurs produits, seul l'id_produit du dernier produit (par exemple, si il y a 4 produits, seul l'id de produit4 est pris en compte) est enregistré dans la table commande.

Merci d'avance pour votre aide.

[/code]

Mammouth du PHP | 19672 Messages

21 déc. 2006, 20:17

-1- Avant enregistrement, comment est stocké ton panier
-2- Fais donc voir la requête SQL utilisée et comment tu la construis.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

21 déc. 2006, 20:18

- Une commande peut contenir plusieurs produits
- Un produit peut-être contenu dans une ou plusieurs commandes

=> contraintes n,n

Donc 2 tables produits et commandes, et une relation entre les deux

Tout ça, c'est de la modélisation, cherche des cours sur "Merise" ou "UML".

ViPHP
ViPHP | 1961 Messages

21 déc. 2006, 20:24

Bonjour,

Je profite de cette remarque pour poser une question
contraintes n,n
Des fois je vois relation n, n et des fois m, n. La quelle des deux est correcte?
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Mammouth du PHP | 19672 Messages

21 déc. 2006, 20:29

Bonjour,

Je profite de cette remarque pour poser une question
contraintes n,n
Des fois je vois relation n, n et des fois m, n. La quelle des deux est correcte?
C'est une question de convention :
-1- 1,1 , à une ligne correspond une ligne;
-2- 1,n , à une ligne correspondent plusieurs lignes;
-3- n,n (ou n,m) à une ou plusieurs lignes peuvent correspondre une ou plusieurs lignes, "m" étant utilisé pour distinguer la quantité d'une table de la quantité de l'autre table. c'est à mon avis une distinction sans intérêt, "n" signifiant "un nombre indéterminé" :-k
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 1961 Messages

21 déc. 2006, 20:40

Re,

Donc l'une ou l'autre, sauf convetion spécifique.
Merci Cyrano!
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

21 déc. 2006, 20:46

Pareil, j'ai jamais vu "m,n"...

Par contre, n'oublions pas la possibilité du 0 ! :)

Un article sympa pour commencer : http://www.sam-mag.com/P53,53,5,43,,,default.aspx

Cos
Petit nouveau ! | 1 Messages

21 déc. 2006, 20:48

-1- Avant enregistrement, comment est stocké ton panier
-2- Fais donc voir la requête SQL utilisée et comment tu la construis.
1- Le panier est enregistré dans une variable de session
2- La requête est la requête de base il me semble
if(isset($_POST['action']) and $_POST['action']=='Valider votre commande'){

	include "../connexion.php";
	$query1="INSERT INTO `commande`
	VALUES ('', '$num_album', '$total', '$date_commande');";
	$result1=mysql_query($query1);
	// inscription ok
	mysql_close ($connexion);
	echo "Congratulations, your order have successfully been registered";
	session_destroy();
}
Le champ vide dans values est en auto_increment (numéro de commande)


Sinon ouckileou je ne comprends pas bien le rapport entre mon problème et les histoires de modelisation de tables ? :?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

21 déc. 2006, 20:50

Sinon Cyrano je ne comprends pas bien le rapport entre mon problème et les histoires de modelisation de tables ? :?
J'ai une table "commande" qui contient un champ id_produit et un champ id_commande, et je ne vois pas comment faire pour enregistrer plusieurs id_produit (si le panier contient plusieurs produits) sous un même id_commande.
Moi je vois très bien le rapport au contraire :lol:

SI tu as une table commande, avec une colonne "id_commande" et une "id_produit", je ne vois pas trop comment tu vas pouvoir enregistrer tous tes produits dans la même colonne. Enfin si tu peux, mais c'est mal.