Saie obligatoire et complément optionnel

Eléphanteau du PHP | 11 Messages

23 janv. 2010, 18:05

Bonjour,
j'ai besoin de vos conseils. Pouvez-vous, si vous répondez à ce message, employer les mêmes noms (champs, tables) que moi, ça aide tellement à la compréhension... Un immense merci à vous.

Souhait 1 - pouvoir saisir une info générale uniquement
je crée un premier formulaire "achatcroissants.php" avec 6 champs:(date, viennoiserie1, viennoiserie2,viennoiserie3, viennoiserie4 nombre)
ce qui me permet de saisir (en bon français) : Le 1ER janvier 2010, J'ai acheté 3 croissants

Soujait 2 - pouvoir y ajouter des détails sur chaque croissant acheté
je crée un second formulaire "detailcroissants.php" avec 3 champs (viennoiserie*, nature, poids)
ce qui me permet de préciser :
le 1er croissant est : ordinaire et pèse : 121 grammes
le 2nd croissant est : au beurre et pèse : 146 grammes
aucun renseignement pour le 3ème croissant

Question?? Comment faire pour détecter qu'il n'y a eu que 3 croissants achetés et les identifier individuellement?

pour faire ce travail, je pense avoir besoin de créer 2 tables :
1 appelée "courses" avec les champs suivants : dateachat, viennoiserie1,viennoiserie2,viennoiserie3,viennoiserie4, nature, poids
1 seconde table appelée "viennoiseries" avec 2 champs (id, nom) et plusieurs entrées ; croissant, pain au chocolat, pain au raisins


Question ?? Pouvez-vous me conseiller, me dire si je fais fausse route, si il y a mieux à faire?
D'avance un grand merci

Question : Plutôt que d'avoir une table avec viennoiserie1, 2, 3, 4, n'y a t'il pas un moyen de mettre viennoiseriex??
:roll:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 janv. 2010, 23:01

Personnellement je verrais plutôt trois tables :
- viennoiserie (id, nom, ...)
- course (id, date_achat, ...)
- commande (id_course, id_viennoiserie)

Cette 3ème table (commande) fait le lien entre les deux autres et te permet d'avoir pour chaque "course" de 0 à N viennoiseries (tu n'es ainsi pas limité à 4 achats maximum, et tu n'as pas non plus besoin de vérifier si chacun est renseigné ou pas)

Grace à cette table, tu peux retrouver toutes les viennoiseries d'une course (WHERE id_course = XX), et facilement ajouter ou enlever des produits, ou même les compter :)

A toi de voir ensuite si la notion de "au beurre" ou "ordinaire", ou le poids, sont inclus dans la table viennoiserie, ou si celles-ci sont liées à chaque achat. Dans ce cas, tu peux compléter la table commande avec ces infos et les détailler pour chacun des croissants achetés.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 11 Messages

24 janv. 2010, 01:23

Merci Ryle de ces précieux conseils.
J'ai donc créé les 3 tables.

pour les liaisons, j'ai utilisé le concepteur phpmyadmin mais je ne suis pas sûr que celà suffise...Qu'en penses-tu?

je me lance dans l'élaboration du premier formulaire,

j'ai besoin de 3 champs de saisie par défaut
date
nombre acheté
type de viennoiserie


mais si je veux ajouter un autre achat, il me faut un bouton pour ajouter une ligne avec :
nombre acheté
type (2) de viennoiserie


un bouton submit en fin de formulaire suffirait-il ?


Connaissez-vous des exemples de codes s'approchant de ce cas?

cordialement