Gérer les formules d'un fast food

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Gérer les formules d'un fast food

Re: Gérer les formules d'un fast food

par Emin&m's » 30 janv. 2014, 18:40

Alors voilà comment je procédais:
Tout d'abord, l'utilisateur choisis ces produits en cochant des cases (checkbox) et les informations sont stockés dans un tableau qui récupère les valeurs et les extraits.
Ensuite, dans ma page qui récapitule la commande, j’exécutais une requête sql qui me permettait d'afficher les produits dans ma base de données en fonction des cases cochées précédemments:
	foreach($explore as $valeur)
	{
    if(!empty($valeur))
	{
	$sql = $bdd->query("SELECT * FROM produit WHERE IdProduit='$valeur'") ;
Jusque là pas de souci! Mais après comment gérer si ces produits forment une formule?
Si cela peut vous aider, je peux insérer le code que je faisais et qui marchait presque (gros conflits, le code comprenait si un produit faisait partie d'une formule, et comprenait si un produit n'en faisait pas partie et devait être comptés comme un SUPPLEMENT. Le problème, c'est que mon code mélangeait les formules, c'est à dire, si dans ma première ligne dans ma table formule, j'avais une formule avec sandwichs, et accompagnements qui formaient une formule à 5euros, et dans ma deuxième ligne une formule composé d'un accompagnement, d'un plats chauds et d'une boisson, et bien quand l'utilisateur choisissait de prendre un sandwichs, un plats chaud, un accompagnement et une boisson il y avait conflit entre les deux formules et le prix indiquées étaient incorrectes.

Voilà j'espère que vous avez compris et que certains ont peut être une idée de comment faire, si mon code précedent qui na marchait pas vous intéresse, je peux le poster et essayer d'expliquer ce que j'avais en tête mais c'est très compliquer...

Gérer les formules d'un fast food

par Emin&m's » 30 janv. 2014, 18:28

Bonjour,
désolé si le titre n'est pas vraiment explicite, mais je vais m'expliquer:

Je dois réaliser, pour une sorte de restaurant, un site dans lequel les utilisateurs doivent pouvoir choisir des produits (style coca, escalope de dinde...) afin de les réserver et de venir les chercher en magasin à l'heure souhaitée.
Jusque là, pas de souci! Mais évidemment, le prix de ces produits choisis par l'utilisateur doit être affichées sur une page qui récapitule la commande:

Et là, gros problème! Car en fonction des produits choisis, ceux-ci forment une formule (exemple:un coca, une escapole et des frites sont vendus à 6 euros).
L'administrateur du site doit pouvoir quand il veut ajouter de nouvelles formules, pour vérifier si un produit fait partie d'une formule, j'ai donc penser à créer une table typeproduit qui correspond au type d'un produit (exemple: coca, fanta font partie du type boisson, escapole ou steak haché de plats chauds, frites pates riz de accompagnement...). Chaque produit a donc un type qui lui correspond.

Ensuite, j'ai créer une table formule, qui contient le nom de la formule, son prix, et quatres champs appelés IdTypeProduit1, IdTypeProduit2, IdTypeProduit3, et IdTypeProduit4. En fait, dans ces quatres champs, j'insère les IdTypeProduit qui forment ensemble une formule (par exemple, ma première ligne est : IdTypeProduit1 : 5, IdTypeProduit2: 6, IdTypeProduit3: 7 Et IdTypeproduit4 : 0 (valeur par défaut).
Cela correspond à (IdTypeProduit1: plats chauds, IdTypeProduit2: accompagnement, IdTypeProduit3: Boisson et le 4ème et laissé vide car seulement ces trois conditions forment la formule.

Voilà j'espère que la situation est bien expliqué.


Maintenant, cela fait quatres jours que j'essaie de comparer les produits que l'utilisateur à saisis, et de voir si ceux-çi forment une formule. J'avais presque réussi, mais il y avait de gros défaut qui n'auraient pas pu être corrigés avec ce code là, j'ai donc recommencer à zéro (mais j'ai gardé une trace du code d'avant quand même, si vous voulez comprendre un peu comment j'avais fait, c'est très compliqué à expliquer, mais je vais essayer quand même dans le post ci dessous).