|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
MES COURSES 0.1 - LISTE DE COURSES AVANCÉE
Information sur la source
Description
Voici un module de gestion des listes de courses. Il gère les menus que vous avez prévus pour la semaine ou le mois, et génère automatiquement la liste en fonction des recettes que vous avez créées et du nombre de personnes. Il tient compte des quantités dont vous disposez déjà et n'ajoute à la liste que les quantités nécessaires. Le script vous propose même des recettes en fonction de ce qu'il y a dans votre frigo, et ajoute tout seul les ingrédients manquants. La liste s'imprime en fonction de l'ordre des rayons du supermarché (fini les aller-retour au premier rayon pour aller chercher le dernier item de la liste ! ;o) )
Source
- /*
- Structure de la base MySQL :
-
- --
- -- Structure de la table `Conditionnement`
- --
-
- CREATE TABLE IF NOT EXISTS `Conditionnement` (
- `id_conditionnement` tinyint(4) NOT NULL auto_increment,
- `nom_conditionnement` varchar(20) collate latin1_german2_ci NOT NULL,
- `quantite` float(5,2) NOT NULL default '1.00',
- `unite` varchar(20) collate latin1_german2_ci NOT NULL,
- PRIMARY KEY (`id_conditionnement`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-
- -- --------------------------------------------------------
-
- --
- -- Structure de la table `Cuisine`
- --
-
- CREATE TABLE IF NOT EXISTS `Cuisine` (
- `id_recette` int(11) NOT NULL,
- `id_ingredient` int(11) NOT NULL,
- `quantite` float(4,2) NOT NULL default '1.00',
- PRIMARY KEY (`id_recette`,`id_ingredient`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-
- -- --------------------------------------------------------
-
- --
- -- Structure de la table `Genre`
- --
-
- CREATE TABLE IF NOT EXISTS `Genre` (
- `id_genre` tinyint(4) NOT NULL auto_increment,
- `nom_genre` varchar(20) collate latin1_german2_ci NOT NULL,
- PRIMARY KEY (`id_genre`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-
- -- --------------------------------------------------------
-
- --
- -- Structure de la table `Ingredient`
- --
-
- CREATE TABLE IF NOT EXISTS `Ingredient` (
- `id_ingredient` int(11) NOT NULL auto_increment,
- `nom_ingredient` varchar(30) collate latin1_german2_ci NOT NULL,
- `type_ingredient` int(11) NOT NULL,
- `conditionnement` tinyint(4) NOT NULL,
- PRIMARY KEY (`id_ingredient`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-
- -- --------------------------------------------------------
-
- --
- -- Structure de la table `Liste`
- --
-
- CREATE TABLE IF NOT EXISTS `Liste` (
- `id_ingredient` int(11) NOT NULL,
- `quantite` tinyint(4) NOT NULL,
- PRIMARY KEY (`id_ingredient`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-
- -- --------------------------------------------------------
-
- --
- -- Structure de la table `Menu`
- --
-
- CREATE TABLE IF NOT EXISTS `Menu` (
- `date_menu` date NOT NULL,
- `repas` tinyint(4) NOT NULL,
- `plat` tinyint(4) NOT NULL,
- `id_recette` int(11) NOT NULL,
- `nb_pers` tinyint(4) NOT NULL,
- PRIMARY KEY (`date_menu`,`repas`,`plat`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-
- -- --------------------------------------------------------
-
- --
- -- Structure de la table `Recette`
- --
-
- CREATE TABLE IF NOT EXISTS `Recette` (
- `id_recette` int(11) NOT NULL auto_increment,
- `nom_recette` varchar(50) collate latin1_german2_ci NOT NULL,
- `genre_recette` tinyint(4) NOT NULL,
- PRIMARY KEY (`id_recette`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-
- -- --------------------------------------------------------
-
- --
- -- Structure de la table `Stock`
- --
-
- CREATE TABLE IF NOT EXISTS `Stock` (
- `id_ingredient` int(11) NOT NULL,
- `quantite` float(6,2) NOT NULL,
- PRIMARY KEY (`id_ingredient`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-
- -- --------------------------------------------------------
-
- --
- -- Structure de la table `Type`
- --
-
- CREATE TABLE IF NOT EXISTS `Type` (
- `id_type` int(11) NOT NULL auto_increment,
- `nom_type` varchar(20) collate latin1_german2_ci NOT NULL,
- `rayon` tinyint(4) NOT NULL default '0',
- PRIMARY KEY (`id_type`),
- KEY `rayon` (`rayon`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
- */
/*
Structure de la base MySQL :
--
-- Structure de la table `Conditionnement`
--
CREATE TABLE IF NOT EXISTS `Conditionnement` (
`id_conditionnement` tinyint(4) NOT NULL auto_increment,
`nom_conditionnement` varchar(20) collate latin1_german2_ci NOT NULL,
`quantite` float(5,2) NOT NULL default '1.00',
`unite` varchar(20) collate latin1_german2_ci NOT NULL,
PRIMARY KEY (`id_conditionnement`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-- --------------------------------------------------------
--
-- Structure de la table `Cuisine`
--
CREATE TABLE IF NOT EXISTS `Cuisine` (
`id_recette` int(11) NOT NULL,
`id_ingredient` int(11) NOT NULL,
`quantite` float(4,2) NOT NULL default '1.00',
PRIMARY KEY (`id_recette`,`id_ingredient`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-- --------------------------------------------------------
--
-- Structure de la table `Genre`
--
CREATE TABLE IF NOT EXISTS `Genre` (
`id_genre` tinyint(4) NOT NULL auto_increment,
`nom_genre` varchar(20) collate latin1_german2_ci NOT NULL,
PRIMARY KEY (`id_genre`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-- --------------------------------------------------------
--
-- Structure de la table `Ingredient`
--
CREATE TABLE IF NOT EXISTS `Ingredient` (
`id_ingredient` int(11) NOT NULL auto_increment,
`nom_ingredient` varchar(30) collate latin1_german2_ci NOT NULL,
`type_ingredient` int(11) NOT NULL,
`conditionnement` tinyint(4) NOT NULL,
PRIMARY KEY (`id_ingredient`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-- --------------------------------------------------------
--
-- Structure de la table `Liste`
--
CREATE TABLE IF NOT EXISTS `Liste` (
`id_ingredient` int(11) NOT NULL,
`quantite` tinyint(4) NOT NULL,
PRIMARY KEY (`id_ingredient`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-- --------------------------------------------------------
--
-- Structure de la table `Menu`
--
CREATE TABLE IF NOT EXISTS `Menu` (
`date_menu` date NOT NULL,
`repas` tinyint(4) NOT NULL,
`plat` tinyint(4) NOT NULL,
`id_recette` int(11) NOT NULL,
`nb_pers` tinyint(4) NOT NULL,
PRIMARY KEY (`date_menu`,`repas`,`plat`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-- --------------------------------------------------------
--
-- Structure de la table `Recette`
--
CREATE TABLE IF NOT EXISTS `Recette` (
`id_recette` int(11) NOT NULL auto_increment,
`nom_recette` varchar(50) collate latin1_german2_ci NOT NULL,
`genre_recette` tinyint(4) NOT NULL,
PRIMARY KEY (`id_recette`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-- --------------------------------------------------------
--
-- Structure de la table `Stock`
--
CREATE TABLE IF NOT EXISTS `Stock` (
`id_ingredient` int(11) NOT NULL,
`quantite` float(6,2) NOT NULL,
PRIMARY KEY (`id_ingredient`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
-- --------------------------------------------------------
--
-- Structure de la table `Type`
--
CREATE TABLE IF NOT EXISTS `Type` (
`id_type` int(11) NOT NULL auto_increment,
`nom_type` varchar(20) collate latin1_german2_ci NOT NULL,
`rayon` tinyint(4) NOT NULL default '0',
PRIMARY KEY (`id_type`),
KEY `rayon` (`rayon`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_german2_ci;
*/
Conclusion
Tout ce que vous avez à faire, c'est créer les tables dans une base MySQL et renseigner le fichier connexion.php pour indiquer vos paramètres de connexion MySQL. Par défaut, l'application considère que vous vivez à deux et faites les courses toutes les semaines. Vous pouvez changer ces paramètres en éditant le fichier config.php. J'ai essayé de rendre tout ça aussi intuitif que possible, j'espère que ça ne vous paraîtra pas trop tordu... Si nécessaire, les grandes lignes de l'utilisation sont expliquées dans le fichier lisez-moi.htm. ************************************************************** BUGS CONNUS : 1) Mise à jour des quantités lors de la génération automatique Si un article a été ajouté manuellement à la liste et doit être augmenté par la génération automatique, la quantité "manuelle" est écrasée par la quantité calculée. C'est un problème sur lequel je travaille. Pour l'instant, je vous conseille de commencer par la génération automatique, et de modifier ENSUITE les quantités. 2)Modification des menus et mise à jour de la liste Si vous avez sélectionné une recette dans le planning des menus et que vous avez généré la liste automatique, les ingrédients requis sont ajoutés à la liste. Si vous changez d'avis et modifiez les menus, les ingrédients ne seront pas retirés de la liste automatiquement. ************************************************************** Tous les commentaires concernant le code ou l'ergonomie sont les bienvenus !
Fichier Zip
Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
Télécharger le zip
Historique
- 28 août 2006 09:29:25 :
- Suppression de l'apostrophe surnuméraire à la fin du code SQL
- 29 août 2006 08:50:34 :
- Corrigé la requête SQL pour supprimer les caractères d'échappement
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Zone de liste [ par Joez ]
voila j'ai une table MysqlNumNomPrenomcomment remplir une zone de liste sur une page php ?Cette liste doit contenir le nom et le prenom sur la meme li
liste deroulante liées entre elle [ par jodenki ]
J'aimerais lier deux liste déroulantes entre elle :C'est à dire que quand je selectionne un element dans la première, la deuxième soit automatiquement
Liste déroulante lié a une base MySQL [ par pi0up51 ]
Je sais faire ça en asp mais pas en php, ça doit pas être bien compliqué mais si qqn peut m'aider ;)@tte et bonn' prog'pi0up51http://www.progotop.ht.s
zone de liste dynamique [ par pheno ]
est ce que qqun sait comment on fait pour mettre dans une zone de liste le contenu d un champ d une base de donnee mysql ????ce que j ai fait <sel
liste deroulante liée [ par pheno ]
bonjour comment est ce k on peut faire pour lier 2 zone entre elles ????Merci d avanceChevalier Pheno Starboard, membre de la Freeman-Corp
prob avec des listes deroulantes [ par toto99 ]
voila mon prob est le suivante:-------------------------------------------j'ai une premiere liste deroulante qui ce remplit directement par raport a m
boucle [ par toto99 ]
voila je recupe des dates dans une liste deroulante suvant un choix qui ce trouve dans une autre liste deroulante, tous les deux sont alimenter par un
J'ai du mal j'ai besoin d'aide [ par satanik_mike ]
Bonjour, je viens vous demander de l'aide car je bloque sur un truc qui paraît bête mais qui me fait c..... En fait mon problème se pose sur une page
Boite à liste conditionnée par une autre boite [ par olive59 ]
Source en PHP avec base MySqlJ'alimente une boite à liste avec une base MySQL. Jusque là, tout va bien! (Par un SELECT * FROM ...)J'aimerais pouvoir a
Boîtes à liste + PHP + MySql [ par olive59 ]
Source en PHP avec base MySqlJ'alimente une boite à liste avec une base MySQL. Jusque là, tout va bien! (Par un SELECT * FROM ...)J'aimerais pouvoir a
|
Téléchargements
Logiciels à télécharger sur le même thème :
Comparez les prix Nouvelle version
|