Accueil > > > MES COURSES 0.1 - LISTE DE COURSES AVANCÉE
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 !
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
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Etablir menu de la semaine et liste de courses sous Excel [ par jacquandco ]
Bonjour, Je souhaiterai créer sous Excel mes recettes de cuisine pour établir un menu de la semaine et gérer ma liste de courses. Je suis novice en la
Liste déroulante avec source sql [ par crazydancer ]
J'utilise des listes déroulantes avec les options chargées avec une boucle. Sur IE cela fonctionne très bien, mais sur FireFox et sur Safari cela ne
checkbox dans une fonction [ par margChamo ]
bonjour, voila ca fait plusieurs jours que je cherche et que je test des morceau de codes mais sans résultat c'est pour cela que je sollicite votre ai
formulaire dynamique avec choix multiple [ par legeant11 ]
bon ce que je demande il est simple pour les uns mais dure pour moi ce que je veux faire c'est un formulaire dynamique j'explique dans le formulaire
une liste de selection [ par nwija ]
salut a tt le monde. j'ai un probleme avec une liste de selection ayant de chois "oui" ou "non". voici mon code : Oui <optio
help me :utiliser une valeur de liste déroulante [ par asma87 ]
Bonjour, J'ai essayé en vain de trouver comment utiliser la valeur sélectionner dans ma liste roulante,connecté à ma base de données mysql,dans un au
Download de fichier [ par ChewiChew ]
Bonjour, Je réalise une site qui se connecte sur un serveur FTP distant. Pour le moment j'arrive a récuperer la liste de fichiers et des dossiers. Je
Lié liste déroulante avec la même base de donnée [ par freega ]
Bonsoir, Je me permet de poster car après plusieurs recherches sur les listes déroulantes liées entre-elles je n'arrive pas à trouvez une solution.
Liste déroulante pour filtrer résultats issus d'une table sql [ par loonasia41 ]
Bonjour à tous, Je suis en train de créer une base de données où j'affiche mes résultats dans un tableau grâce à php. Ma base de données contient po
visualiser la liste des connectés en php [ par malia01 ]
je suis entraine de dévelloper un site web en PHP dans laquel chaque type d'utilisateur techniciens expert administrateur possédent un mot de passe e
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|