Module Bases de Données et Sites Web Examen du 26 mai 2008



Documents pareils
PHP et mysql. Code: php_mysql. Olivier Clavel - Daniel K. Schneider - Patrick Jermann - Vivian Synteta Version: 0.9 (modifié le 13/3/01 par VS)

1 Position du problème

Authentification unique Eurécia

PHP CLÉS EN MAIN. 76 scripts efficaces pour enrichir vos sites web. par William Steinmetz et Brian Ward

XML par la pratique Bases indispensables, concepts et cas pratiques (3ième édition)

Pratique et administration des systèmes

La gestion des boîtes aux lettres partagées

Thierry BOULANGER. par la pratique. Bases indispensables Concepts et cas pratiques XML. 3 ième édition. Nouvelle édition

ESPACE COLLABORATIF. L Espace Collaboratif : votre espace de partage entre acteurs régionaux

Mysql avec EasyPhp. 1 er mars 2006

Langage HTML (2 partie) <HyperText Markup Language> <tv>lt La Salle Avignon BTS IRIS</tv>

Outil de démonstration : Application PassNFC

PLATEFORME ANTI-CORRUPTION AU CAMEROUN

Master Technologies numériques appliquées à l'histoire Deuxième année

Une fois votre tableau excel complet, cliquer sur fichier enregistrer sous type de fichier (menu déroulant) csv (séparateur : point virgule).

CREATION WEB DYNAMIQUE

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

PHP 4 PARTIE : BASE DE DONNEES

GOOGLE ANALYTICS. Ajout du code de suivi sur PowerBoutique. Ajout du code de suivi Google Analytics. Page 1 / 7 TUTO / GOOGLE ANALYTICS

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Stockage du fichier dans une table mysql:

Plan Général Prévisionnel (1/2) (non contractuel) Internet et Outils L1/IO S2-IO2 Bases de données: Jointures, Transactions

TUTORIEL D INSTALLATION D ORACLE ET DE SQL DEVELOPPER TUTORIEL D INSTALLATION D ORACLE...1 ET DE SQL DEVELOPPER...1

Guide d utilisation. Version 1.1

Bases de données et sites WEB Licence d informatique LI345

ECR_DESCRIPTION CHAR(80), ECR_MONTANT NUMBER(10,2) NOT NULL, ECR_SENS CHAR(1) NOT NULL) ;

LA PLATE-FORME D'ALTERN C

2 LES BASES DU HTML 19 Qu est-ce que le HTML? 20 De quand date le HTML? 20 Écrire son propre code HTML 22

MANUEL DE L UTILISATEUR

Nouveautés de la version moodle 2.7

contact@nqicorp.com - Web :

Peut être utilisée à l intérieur du site où se trouve la liste de référence.

Sommaire. I.1 : Alimentation à partir d un fichier Access (.mdb)...2

SYSTÈMES D INFORMATIONS

Introduction. PHP = Personal Home Pages ou PHP Hypertext Preprocessor. Langage de script interprété (non compilé)

Utilisation d Hyperplanning 2011

SP1 : Intégration d'une vidéo dans une mardi 21/01/2014. page web, fonction du format vidéo et 3 mercredi 22/01/2014

GEST_INSTANCES APPLICATION DE GESTION DES INSTANCES ET REUNIONS EN EPLE ETABLISSEMENT PUBLIC LOCAL D ENSEIGNEMENT

Création d'un site dynamique en PHP avec Dreamweaver et MySQL

1. Installation du Module

AIDE ENTREPRISE SIS-ePP Plateforme de dématérialisation des marchés publics

Module Com231A - Web et Bases de Données Notion 5 : Formulaires et utilisation des Bases de Données avec PHP

Thème : Création, Hébergement et référencement d un site Web

ContactForm et ContactFormLight - Gestionnaires de formulaire pour Prestashop Edité par ARETMIC S.A.

Vulnérabilités et sécurisation des applications Web

Transfert d un site local vers un serveur. NPDS REvolution 13. Rédaction : Axel Relecture : Dev & Jpb

Exemple accessible via une interface Web. Bases de données et systèmes de gestion de bases de données. Généralités. Définitions

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

FTP : File TRansfer Protocol => permets d envoyer des gros fichiers sur un serveur (ou de télécharger depuis le serveur)

Modélisation PHP Orientée Objet pour les Projets Modèle MVC (Modèle Vue Contrôleur) Mini Framework

Module BDWEB. Maîtrise d informatique Cours 9 - Xquery. Anne Doucet. anne.doucet@lip6.fr

La base de données XML exist. A. Belaïd

Groupe Eyrolles, 2003, ISBN : X

MESUREZ L'IMPACT DE VOS CAMPAGNES!

Rapport de stage. Création d un site web. Stage du 20/01/2013 au 21/02/2013

PHP 5. La base de données MySql. A. Belaïd 1

Formation pour les parents Se familiariser avec la tablette ipad et les applications d apprentissage pour enfants

TD : Requêtes SQL (BDR.TD2-1) INSA 3IF

Etude et développement d un moteur de recherche

COMMANDES SQL... 2 COMMANDES DE DEFINITION DE DONNEES... 2

Module pour la solution e-commerce Magento

LI345 Bases de données et sites Web. Licence de Sciences et Technologies Mention Informatique

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

I4 : Bases de Données

LE PUBLIPOSTAGE OU MAILING

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

Plate-forme de tests des fichiers XML virements SEPA et prélèvements SEPA. Guide d'utilisation

Cliquez sur le site que vous souhaitez consulter, il s affichera directement dans le navigateur.

Adobe Technical Communication Suite 5

Web service AREA Manuel d installation et d utilisation du mode déconnecté. Version du 18 mars 2011

WINDEV MOBILE. ios SMARTPHONE SUPPORT: IOS, ANDROID, WINDOWS PHONE 8.

Tutoriel : Créer un site web simple avec Composer. Fiche consigne Page 1 sur 6

Open Source Job Scheduler

Network Identity Manager mit SN-Gina Outlook Web Access

contact@nqicorp.com - Web :

BTS S.I.O PHP OBJET. Module SLAM4. Nom du fichier : PHPRévisionObjetV2.odt Auteur : Pierre Barais

Un logiciel pour aller plus loin dans la gestion de vos espaces. Mémo technique

Performance web. Mesurer. Analyser. Optimiser. Benjamin Lampérier - Benoît Goyheneche. RMLL Beauvais. 8 Juillet 2015

Gestion d'un parc informatique avec OCS INVENTORY et GLPI

Utiliser SQL Server 2008 R2 Reporting Services comme source de donne es pour Microsoft Excel

Guide de démarrage Tradedoubler. Manuel éditeur / affilié

Modes Opératoires WinTrans Mai 13 ~ 1 ~

Utiliser Twitter. B. Formet, ATice IEN Champagnole et CLEMI Besançon! 1/11

Introduction à Microsoft InfoPath 2010

Attaques applicatives

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

PDO : PHP Data Object 1/13

Utilisation avancée de SugarCRM Version Professional 6.5

Cahier des charges Site Web Page 1 sur 9

Publier dans la Base Documentaire

Spécificités Techniques créations publicitaires

WysiUpStudio. CMS professionnel. pour la création et la maintenance évolutive de sites et applications Internet V. 6.x

MODULE Mailing - Newsletter

Manuel d utilisation de mon.vie-publique.fr

WordPress Référencement naturel (SEO) Optimiser. son référencement. Daniel Roch. Préface d Olivier Andrieu

Transcription:

Nom : Prénom : page 1 Université Pierre et Marie Curie - Paris 6 - UFR 922 - Licence d'informatique Module Bases de Données et Sites Web Examen du 26 mai 2008 Version CORRIGEE Documents autorisés Durée : 2h. Exercice 1 : XML, DTD, XPath On considère le fichier Vehicules.xml suivant, décrivant des véhicules. 5 pts <?xml version="1.0" encoding="utf-8"?> <vehicules> <voiture const='c1'> <modele> <nom>clio</nom> <type>tce</type> </modele> <puissance>4</puissance> </voiture> <voiture const='c2'> <modele> <nom>prius</nom> <type>linea</type> </modele> <puissance>5</puissance> </voiture> <camion const='c2'> <modele> <nom>tundra</nom> <type>double Cab</type> </modele> <puissance>8</puissance> </camion> <voiture const='c1'> <modele> <nom>modus</nom> <type>turbo</type> </modele> <puissance>4</puissance> </voiture> <voiture const='c2'> <modele> <nom>camry</nom> <type>bva</type> </modele> <puissance>7</puissance> </voiture> <constructeur n='c1' nom='renault'> <pays>france</pays> </constructeur> <constructeur n='c2' nom='toyota'> <pays>japon</pays> </constructeur> </vehicules> Question1. Ecrire une DTD Vehicules.dtd représentant des véhicules pour laquelle ce document est conforme.

Lettres initiales du Prénom et du Nom: page 2 <!ELEMENT Vehicules Voiture, Camion Constructeur)*)> <!ELEMENT Voituremodele,puissance)> <!ELEMENT Camionmodele,puissance)> <!ELEMENT Constructeurpays)> <!ELEMENT modelenom,type)> <!ELEMENT puissance #PCDATA)> <!ELEMENT nom #PCDATA)> <!ELEMENT type #PCDATA)> <!ELEMENT pays#pcdata)> <!ATTLIST Voiture const IDREF #REQUIRED> <!ATTLIST Camion const IDREF #REQUIRED> <!ATTLIST Constructeur n ID #REQUIRED nom CDATA #REQUIRED> Question2.On considère les expressions XPath suivantes, appliquées au document Vehicules.xml. Pour chacune d elles, indiquez ce qu elles signifient, et ce qu elles renvoient. a) //voiture[position)=4]/modele/nom Renvoie Camry. 4eme voiture du document b) //voiture[position)=2][puissance > 4]/modele/nom Renvoie Prius. Deuxième voiture du document qui a une puissance >4 c) //voiture[position)=2 and puissance > 4]/modele/nom

Lettres initiales du Prénom et du Nom: page 3 Renvoie Prius d) //voiture [puissance > 4] [position)=2]/modele/nom Renvoie Camry. 2eme Voiture de puissance > 4 du document. Question3. Exprimez en XPath les requêtes suivantes sur le fichier Vehicules.xml : a) Nom des constructeurs de France //constructeur[pays= France ] /@nom b) Pays du constructeur de la Clio //constructeur[@n=//voiture[modele/nom= Clio ]@const]/pays c) Nom des modèles de voitures françaises //voiture[@const=//constructeur[pays= France ]/@n]/modele/nom d) Nom des constructeurs qui ne construisent pas de camion. //constructeur[not@n=//camion/@const)]/@nom

Lettres initiales du Prénom et du Nom: page 4 Question 4. Indiquez pour chacune des requêtes suivantes la réponse correspondante parmi celles qui sont proposées : Requêtes : R1. //voiture[modele/nom= Modus ]@const R2. //voiture/modele[nom= Modus ]@const R3. //voiture[//nom= Modus ]@const R4. //voiture[modele/nom= Modus ]/@const Réponses : a) C1 b) C1 C2 c) C1 C2 C1 C2 d) Pas de réponse R1. R2.. R3. R4. Réponse : R1..a R2..d R3 c R4.a Exercice 2 : XSLT NB : Les questions 1 à 3 sont faciles de type TD. La question 4 mélange plusieurs difficultées mini-problème). Barème : question 1 à 3 : 1 point, question 4 : 2 points 5 pts On considère des fichiers XML qui contiennent une liste de documents sur internet. Chaque document est associé à son type page web ou image), son url et à une description succincte du document. Ces fichiers XML suivent la DTD docs.dtd suivante : <!ELEMENT docs doc*) > <!ELEMENT doc type, url, description) > <!ATTLIST doc numero ID #REQUIRED> <!ELEMENT type #PCDATA) > <!ELEMENT url #PCDATA) > <!ELEMENT description #PCDATA) > Par exemple, le fichier exemple.xml ci-dessous contient deux documents un de type page web et un autre de type image ) : <docs> <doc numero='1'>

Lettres initiales du Prénom et du Nom: page 5 <type>page web</type> <url>http://www.upmc.fr</url> <description>site web de l'upmc</description> </doc> <doc numero='2'> <type>image</type> <url>http://www.upmc.fr/logo.jpg</url> <description>nouveau logo de l'upmc</description> </doc> </docs> Remarque : L exemple ci-dessus contient seulement deux documents, mais vous répondrez aux questions suivantes afin que vos feuilles XSL puissent traiter tous fichiers XML au format docs.dtd. Question 1. Compléter la feuille XSL suivante pour qu elle transforme un document XML qui suit la DTD docs.dtd) en un autre document XML contenant seulement une liste d URL. Ce nouveau document suit la DTD : <!ELEMENT adresses ad*) > <!ELEMENT ad #PCDATA)> Par exemple, le résultat obtenu pour le fichier exemple.xml est : < adresses> <ad>http://www.upmc.fr</ad> <ad>http://www.upmc.fr/logo.jpg</ad> </adresses> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match= " "> /docs <adresses> <xsl:apply-templates select= "//doc"/> </adresses> </xsl:template> <xsl:template match= "."> <ad><xsl:value-of select='url'/></ad> doc </xsl:template>

Lettres initiales du Prénom et du Nom: page 6 </xsl:stylesheet> Question 2. Compléter la feuille XSL suivante pour quelle génère un nouveau document XML qui respecte la DTD docs.dtd) contenant seulement les documents de type «image». <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match=... > /docs <docs> <xsl:copy-of select= "//doc[type='image']"/> </docs> </xsl:template> </xsl:stylesheet> Question 3 : Compléter la feuille XSL ci-dessous pour qu elle transforme le document XML en une page HTML indiquant le nombre de documents de type «image» et le nombre de documents de type «page web» dans le fichier XML. Par exemple, pour le fichier exemple.xml, le code HTML obtenu est : <HTML> <p>nombre d images : 1</p> <p>nombre de pages web : 1 </p> </HTML> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match= " "> /docs <HTML> <p>nombre d images : <xsl:value-of select="count//doc[type='image'])"/></p> <p>nombre de pages web : <xsl:value-of select="count//doc[type='page web'])"/></p> </HTML>

Lettres initiales du Prénom et du Nom: page 7 </xsl:template> </xsl:stylesheet> Question 4. Compléter la feuille XSL ci-dessous pour qu elle transforme un document XML suivant la DTD docs.dtd) en un page HTML qui affiche un tableau HTML contenant une ligne par document. Pour chaque document, on affiche seulement son numéro première colonne du tableau) et son url deuxième colonne du tableau) : les urls des documents de type «page web» sont affichées comme des liens cliquables ayant la description du document comme valeur du lien, et les urls des documents de type «image» sont remplacées par l image avec un attribut alt contenant la description du document. Par exemple, pour le fichier exemple.xml, le code HTML obtenu est : <HTML> <TABLE BORDER="1"> <TR><TH>Numero</TH><TH>URL</TH></TR> <TR><TD>1</TD><TD><A href="http://www.upmc.fr">site web de l'upmc</a></td></tr> <TR><TD>2</TD><TD><IMG width="200" src="http://www.upmc.fr/logo.jpg" alt="nouveau logo de l'upmc"></td></tr> </TABLE> </HTML> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:template match= "."> </xsl:template> <xsl:template match= " ">

Lettres initiales du Prénom et du Nom: page 8 </xsl:template> </xsl:stylesheet> <?xml version="1.0" encoding="iso-8859-1"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/xsl/transform" version="1.0"> <xsl:output method="html" indent="yes" /> <xsl:template match= "/docs"> <HTML> <TABLE BORDER='1'> <TR><TH>Numero</TH><TH>URL</TH></TR> <xsl:apply-templates select= "//doc"/> </TABLE> </HTML> </xsl:template> <xsl:template match= "doc"> <TR> <TD><xsl:value-of select='@numero'/></td> <TD> <xsl:if test="type='image'"> <IMG width='200'> <xsl:attribute name='src'><xsl:value-of select='url'/></xsl:attribute> <xsl:attribute name='alt'><xsl:value-of select='description'/></xsl:attribute> </IMG> </xsl:if> <xsl:if test="type='page web'"> <A><xsl:attribute name='href'><xsl:value-of select='url'/></xsl:attribute> <xsl:value-of select='description'/> </A> </xsl:if> </TD> </TR> </xsl:template> </xsl:stylesheet>

Lettres initiales du Prénom et du Nom: page 9 Exercice 3 : SQL3 5 pts On considère une base de données pour la gestion des menus d un restaurant, dont le schéma Entité/Association est donné ci-dessous : type : Equivalent : nom Nom poids : Recette composant_de : : Préparation durée : : : Ingrédient_de fait_partie accompagne : Menu : Vin Date Nom Type Nom On précise qu un menu peut être composé des recettes suivantes décrite par le type de recette) : une entrée optionnelle), d un plat obligatoire) et d un dessert optionnel). Une recette est faite de préparations, elles-mêmes éventuellement composées d autres préparations qui leur servent d ingrédient. Par exemple, la sauce béchamel peut servir entre autres) à confectionner une sauce mornay en lui ajoutant de l œuf et du fromage). Les ingrédients de base beurre, œuf, etc) peuvent donc être considérés comme des préparations n ayant pas d ingrédient et de durée nulle. Une préparation pouvant ne pas être réalisable manque d un ingrédient de base par exemple), il existe éventuellement une préparation équivalente. Un vin a un type «rouge», «rosé», «champagne», etc.) et chaque recette peut être accompagnée d un ou plusieurs vins. Question 1 1 points) Compléter le schéma précédent en indiquant les cardinalités maximum:minimum dans les cadres prévus à cet effet. On rappelle que les cardinalités s expriment d une entité vers une association, la flèche indique le sens de lecture pour les associations réflexives. Une cardinalité peut-être un nombre entier 1, 2, 3 ) ou alors N, pour indiquer que le nombre ne peut être borné. Préparation 0:N Ingrédient 1:N Préparation

Lettres initiales du Prénom et du Nom: page 10 Préparation 0:1 Equivalent 0 :1 Préparation Recette 1:N Composé 1 :N Préparation Recette 1:N Accompagne 1 :N Vin Recette 1:N fait_partie 1 :3 Menu Question 2 1 point) Quelles) contraintes) d intégrité sur un ou des attributs) de Préparation est induite par l association Ingrédient_de? Répondre en français. Le poids d une préparation est égale à la somme des poids de ses ingrédients. La durée d une préparation est supérieure à la durée maximale de ses ingrédients. Question 3 2 points) Compléter la série d instruction SQL3 suivante pour créer le schéma d une telle base de données. Vous ne pouvez pas créer de type supplémentaire ni de table supplémentaire. CREATE TYPE...; CREATE TYPE Vin AS OBJECT...... ); CREATE TYPE Menu AS OBJECT nom VARCHAR250), date Date );

Lettres initiales du Prénom et du Nom: page 11 CREATE TYPE LesVins AS. Vin; CREATE TYPE Recette AS OBJECT nom VARCHAR250), type VARCHAR230), fait_partie, accompagne. ) ; CREATE TYPE EnsRecettes AS.. Recette; CREATE TYPE EnsPréparation AS. Preparation; CREATE TYPE Préparation AS OBJECT nom, durée.., poids..., composant_de..., équivalent..., ingrédient_de..., ) ; CREATE TABLE LesPréparations OF. ; CREATE TABLE LesMenus OF. ;

Lettres initiales du Prénom et du Nom: page 12 CREATE TABLE LesRecettes OF. ; CREATE TYPE Préparation; CREATE TYPE Vin AS OBJECT type VARCHAR220), nom VARCHAR220) ); CREATE TYPE Menu AS OBJECT nom VARCHAR250), date Date ); CREATE TYPE LesVins AS TABLE OF REF Vin; CREATE TYPE Recette AS OBJECT nom VARCHAR250), type VARCHAR230), fait_partie REF Menu, accompagne LesVins ) ; CREATE TYPE EnsRecettes AS TABLE OF REF Recette; CREATE TYPE EnsPréparation AS TABLE OF REF Preparation; CREATE TYPE Préparation AS OBJECT nom VARCHAR20), durée NUMBER3), poids NUMBER3),

Lettres initiales du Prénom et du Nom: page 13 composant_de EnsRecettes, équivalent REF Préparation, ingrédient_de EnsPréparation ) ; CREATE TABLE LesPréparations OF Préparation ; CREATE TABLE LesMenus OF Menu ; CREATE TABLE LesRecettes OF Recette NESTED TABLE accompagne STORE AS tabvins; Question 4 1 point) Quel problème de redondances posent les associations Composant_de et Ingrédient_de par rapport à l entité Préparation? Indiquez ci-dessous les modifications à apporter au schéma Entité/Association ajouter uniquement des attributs dans le schéma ci-dessous) pour résoudre ce problème. Problèmes de redondance : Modification du schéma Entité/Association : Equivalent Recette Composant Préparation Ingrédient_de

Lettres initiales du Prénom et du Nom: page 14 Reportez ces modifications sur les créations de type : rayez les types inutiles et créez les nouveaux types nécessaires. Lorsqu un type est inchangé par rapport à la question 3, il suffit d indiquer «inchangé». CREATE TYPE...; CREATE TYPE Vin AS OBJECT.... ); CREATE TYPE Menu AS OBJECT nom VARCHAR250), date Date ); CREATE TYPE LesVins AS. Vin; CREATE TYPE Recette AS OBJECT nom VARCHAR250), type VARCHAR230), fait_partie, accompagne. ) ; CREATE TYPE EnsRecettes AS.. Recette; CREATE TYPE EnsPréparation AS. Preparation; CREATE TYPE Préparation AS OBJECT nom,

Lettres initiales du Prénom et du Nom: page 15 durée.., poids..., composant_de..., équivalent..., ingrédient_de..., ) ; CREATE TABLE LesPréparations OF. ; CREATE TABLE LesMenus OF. ; CREATE TABLE LesRecettes OF ; CREATE TYPE Préparation; CREATE TYPE Vin AS OBJECT type VARCHAR220), nom VARCHAR220) ); CREATE TYPE Menu AS OBJECT nom VARCHAR250), date Date ); CREATE TYPE LesVins AS TABLE OF REF Vin;

Lettres initiales du Prénom et du Nom: page 16 CREATE TYPE Recette AS OBJECT nom VARCHAR250), type VARCHAR230), fait_partie REF Menu, accompagne LesVins ) ; CREATE TYPE EnsRecettes AS TABLE OF REF Recette; CREATE TYPE EnsPréparation AS TABLE OF REF Preparation; CREATE TYPE CompoR as OBJECT quoi REF Recette, Combien NUMBER3) ) ; CREATE TYPE EnsCompoR as TABLE of CompoR ; CREATE TYPE CompoP as OBJECT quoi REF Preparation, Combien NUMBER3) ) ; CREATE TYPE EnsCompoP as TABLE of CompoP ; CREATE TYPE Préparation AS OBJECT nom VARCHAR20), durée NUMBER3), poids NUMBER3), composant_de EnsCompoR, équivalent REF Préparation, ingrédient_de EnsCompoP ) ; CREATE TABLE LesPréparations OF Préparation NESTED TABLE composant_de STORE as tabcompo NESTED TABLE ingredient_de STORE as tabingre ; CREATE TABLE LesMenus OF Menu ;

Lettres initiales du Prénom et du Nom: page 17 CREATE TABLE LesRecettes OF Recette NESTED TABLE accompagne STORE AS tabvins; Exercice 4 : PHP Soit le script PHP suivant 5 pts <HTML> <HEAD><TITLE> Etudiants inscrits </TITLE></HEAD> <BODY> <TABLE border=1> <TR><TD>Nom </TD><TD>Prénom </TD></TR> <? $cnx=mysql_connect localhost, NomResp, PassResp ) ; Mysql_select_db Notes,$cnx); $req = mysql_query select * from BaseEtudiant, $cnx) ; while $res=mysql_fetch_array$req)){ echo <TR><TD>.$res[ NomE ]. </TD><TD>.$res[ PrenomE ]. </TD></TR>\n ; }?> </TABLE> </BODY> </HTML> 1- Expliquez ce que fait ce script? Le script affiche sur une page html les étudiants inscrits nom+prénom) et qui sont stockés dans la base BaseEtudiant. La consultation de la page se fait via le script php qui interroge la base BaseEtudiant et affiche le nom et le prénom des étudiants les uns après les autres dans un tableau. 2- On suppose que la table BaseEtudiant contient les n-uplets suivants :

Lettres initiales du Prénom et du Nom: page 18 Durand, Matthieu) ; Dupont, Xavier) ; Mary, Zoé) Représentez sur un schéma le résultat de l exécution de ce code dans un navigateur. Nom Prénom Durand Matthieu Dupont Xavier Mary Zoé 3- On veut ajouter à ce code deux champs de saisies permettant à un responsable de rentrer les notes de partiels et d examens. Chacun de ces deux champs apparaissent devant les noms et les prénoms des étudiants. Indiquez les modifications à apporter au script précédent permettant l affichage de ces champs ainsi que le bouton d envoi du formulaire. Une fois le bouton d envoi est pressé, le script PHP CalculNote.php calculera la moyenne générale des notes voir la question suivante). Indication : On pourra utiliser un champ idp et ide permettant le repérage des notes de partiels et d examens. L ajout de nouvelles parties se fait en gras. <HTML> <HEAD><TITLE> Articles choisis </TITLE></HEAD> <BODY> <center> <TABLE border=1> <TR><TD>Nom produit</td><td>prix Unitaire</TD><TD>Note Partiel</TD><TD>Note Examen</TD></TR> <form method="post" action="calculnote.php"> <?php $cnx=mysql_connect localhost, NomResp, PassResp ) ; mysql_select_db"notes ", $cnx); $req = mysql_query"select * from BaseEtudiant ",$cnx); $idp=1; $ide=1; while $res=mysql_fetch_array$req)){

Lettres initiales du Prénom et du Nom: page 19 echo "<TR><TD>".$res["NomE "]. "</TD><TD>".$res["PrenomE "].'</TD><TD> <input type="text" size="2" name='.$idp.'> </TD><TD> <input type="text" size="2" name='.$ide.'> </TD></TR>'; </center> </HTML>?> } $idp+=1; $ide+=1; echo '</TABLE><BR>'; echo '<input type="submit" name="submit" value="ok">'; </form> </BODY> 3- On s intéresse maintenant au script CalculNote.php calculant la moyenne générale. Pour cela on suppose que le coefficient du partiel vaut 0.4 et celui de l examen est égal à 0.6. Donnez les instructions permettant d afficher la moyenne générale des notes. Indication : La formule de ce calcul est 1 MoyenneG = 0. 4* x.partiel + 0. 6* x.examen où x.partiel respectivement x.examen) NbEtudiants x { Etudiants} est la note du partiel respectivement de l examen) de l étudiant x. Le script CalculNote.php : <html> <body bgcolor="#00cccc" text="#ffffff" link="#990066"> <hr /> <p align="center"><font size="5">moyenne Générale</font></p> <hr /> <?php

Lettres initiales du Prénom et du Nom: page 20 $cnx=mysql_connect localhost, NomResp, PassResp ) ; mysql_select_db"notes ", $cnx); $req = mysql_query"select * from BaseEtudiant ",$cnx); $idp=$ide=1; $Somme=0; $NbE=1 ; while $res=mysql_fetch_array$req)){ if$_post[$idp]>=0 && $_POST[$ide]>=0){ $Somme+=0.4*$_POST[$idp]+ 0.6*$_POST[$ide]; $NbE++ ; } $id+=1; } $Moyenne=$Somme/$NbE ; echo "<B>$Moyenne</B>";?> </body> </html>