Licence Physique et Applications |
Durée : 1h30, documents autorisés. Vous devez composer sur votre propre papier. N'oubliez pas votre nom ! La question 4, qui correspond à ce qu'on vu depuis le premier contrôle, rapporte le plus de points. Quand le sujet n'est pas clair, faites la supposition qui vous arrange (dans la limite du bons sens) et en l'expliquant en quelques mots.
Les entreprises agro-alimentaires sont tenues à une traçabilité de leurs produits. Nous allons aujourd'hui aborder le cas (extrêmement simplifié) de l'une d'elles. Les produits (poudre lyophilisée en sachets) sont produits "par lots". Chaque lot correspond à une production de sachets exactement similaires, produits (suivant les cas) pendant une durée de 15 mn à plusieurs heures. Le changement de lot dure quelques minutes, et doit en particulier permettre de vider la chaîne de production des ingrédients précédents pour passer aux suivants. Il faut bien évidemment mémoriser un certain nombre d'informations pour tous les lots produits. Ces informations sont centralisées sur un serveur redondant (en fait deux ordinateurs fonctionnant simultanément et stockant tout en double, chacun surveillant si l'autre n'a pas de défaillance), dans une base de données SQL. Cette base est accédée dans l'entreprise par différents progiciels (gestion de production, automatisme,...), ainsi que par des humains (service qualité, chefs de ligne, gestionnaires, commerciaux...). Elle est même désormais accédée dans d'autres usines du groupe, et accessible sur Internet (en mode sécurisé et restreint).
Revenons en à la base, plus précisément. Une table décrit les "produits" utilisés. Chaque produit est identifié de manière unique par un code d'exactement 6 caractères, et de diverses informations que nous limiterons (dans ce sujet) à une description sur 20 caractères maxi. Une autre table décrit les "recettes", c'est à dire la composition de chaque lot. Chaque recette est identifiée de manière unique par un code de 4 caractères. Puis elle contient les différents produits utilisés, et pour chacun le pourcentage de ce produit. Dans ce sujet, on suppose qu'on n'aura au maximum que deux produits par recette. Plusieurs autres tables gèrent le personnel, nous nous limiterons dans ce sujet à une seule table, contenant pour chaque employé un code unique (entier), un nom et un prénom (chacun sur 20 caractères maxi). Enfn la table des "lots" définit chaque lot, identifié par un entier unique, un lien vers la recette utilisée, l'employé responsable de la ligne, le moment de début de production (date et heure), la durée de production et le nombre de produits fabriqués.
Faites moi un petit schéma de cette base et de ses relations, et donnez la syntaxe des commandes SQL nécessaires pour créer ces tables (inutile de les remplir).
Ecrivez les requêtes SQL qui permettent d'afficher :
2a) toutes les recettes contenant plus de 15% du produit dont le code est "glutso"
2b) toutes les recettes contenant plus de 15% du produit dont la description est "glutamate de sodium"
2c) tous les produits (le code suffit) qu'a utilisé Jean Dupont dans la journée du 18 mai 2006
Comme on va accéder à la base en php, on va pouvoir répondre à la question 2c par une suite de requêtes.
3a) écrivez le code PHP / HTML permettant de créer un formulaire contenant une liste déroulante proposant les noms / prénoms des employés, et appelle une page "suite1.php" avec en argument le code de l'employé.
3b) dans suite1.php, on lance une requête permettant de trouver les lots gérés par le responsable reçu en argument (en se limitant au 18 mai 2006). Puis pour chaque lot trouvé, on recherche le code de la recette, que vous mettrez dans une variable nommée obligatoirement $codrec. A l'aide de ce code de recette, il resta à afficher les codes des produits utilisés (on n'affiche pas les produits dont le pourcentage est nul). Ecrivez le source de suite1.php
Pour cette question, vous avez le droit (mais pas l'obligation) d'utiliser des fonctions. Donnez le programme PHP à rajouter à la question 3b pour que
Si c'est fait, vous pouvez me donner le php à rajouter pour que les codes produits soient classés par ordre alphabétique.
Patrick
TRAU, ULP - IPST
mars 06