Sie sind auf Seite 1von 22

TPs NF16

TP1
PhpMyAdmin est une interface conviviale qui permet de grer trs facilement une base de donnes sans ncessiter une connaissance avance des requtes SQL. Avec le gestionnaire de bases de donnes phpMyAdmin, vous pourrez rapidement : Crer et supprimer des bases de donnes ; Crer, copier, modifier et supprimer des tables ; Supprimer, diter et ajouter des champs ; Crer et excuter des requtes SQL ; Crer des utilisateurs et changer leurs droits ; Crer et exploiter des sauvegardes de tables ; Le but de ce TP est donc de vous initier lutilisation de cette interface.

Pendant chacune des sances des TPs de NF16, vous vous loguerez sur chaque poste avec lidentifiant : nf16 et le mot de passe : nf16.

I. Cration dune base de donnes.


Dmarrer le logiciel EasyPHP5-3, faire un clic droit sur licne situe dans la barre doutils. Aller dans Administration puis cliquer sur Administrer MySql . Lcran daccueil de phpMyAdmin est partag en deux parties : gauche une liste droulante affiche la liste des tables contenue dans la base de donnes active. La partie de droite est utilise pour crer une nouvelle base.

Dans la zone de droite, en cliquant sur longlet bases de donnes , saisissez le nom de la nouvelle base score_db puis cliquez sur le bouton crer. Le nom de la nouvelle base doit safficher dans le cadre de gauche avec la mention aucune table na t trouve dans cette base .

Nous allons maintenant procder la cration des tables. Dans le cadre de droite, saisissez le nom de la table crer (ventes par exemple pour la premire table de la base score_db), renseignez le nombre de champs (5 pour notre exemple). Puis cliquez sur le bouton excuter. ! chaque cration de table.

!!

Ne pas oublier de cliquer sur le bouton sauvegarder

Un formulaire saffiche alors, destin renseigner les noms, les types et les paramtres des champs crer. Vous les remplirez pour la table vente comme suit : Nom du champ ID Type Smallint Taille/valeurs Description Identifiant :cl primaire de la table (cf colonne INDEX). Dans extra on mettra loption auto_increment Nous indiquerons les mois dans un format numrique (1,2,3..) Format anne Nombre dcimal de 10 chiffres max dont 2 aprs la virgule

CommerciauxID Mois

Tinyint Tinyint

Anne Resultat

Year Decimal

10,2

Le format de toutes les tables sera InnoDB (format supportant les contraintes de cls trangres). Crez deux autres tables commerciaux et agences de la mme manire, que vous remplirez comme suit. commerciaux Nom du champ ID Nom Prnom Email agencesID

Type Tinyint Varchar Varchar Varchar Tinyint

Taille/valeurs 50 50 100

Description Cl primaire Chane de 50 caractres max

Agences Nom du champ ID Ville Secteur

Type Smallint Varchar Varchar

Taille/valeurs 50 50

Description Cl primaire

Vous remarquerez la suite de la cration dune table, les commandes SQL qui ont t gnres :

On obtient ensuite un tableau rcapitulatif de toutes les tables prsentes dans la base score_db comme le montre la figure suivante.

! ! ! Les accents ne sont pas conservs dans les noms des attributs

II. Import et export de fichier dans phpMyAdmin


La cration dune table peut se faire en important un fichier .sql contenant les commandes SQL. Nous allons supprimer la table commerciaux (retourner la description de la base de donnes, en cliquant sur son nom, puis sur la ligne correspondant cette table, cliquer sur licne supprimer qui se trouve sur la mme ligne que le nom de la table). Nous allons prsent recrer cette table en important un fichier. Ouvrez un diteur de texte (context par exemple) et tapez les commandes suivantes : use score_db; create table commerciaux ( id tinyint unsigned, nom varchar(50), prenom varchar (50), email varchar (100), agenceID tinyint, primary key (id));

Sur la gauche cliquez sur licne SQL puis sur longlet importer fichier. Slectionnez le fichier excuter.

Nous retrouvons bien dans la base score_db la table commerciaux qui a t cre. Une importation de fichiers peut galement tre utilise pour des insertions de donnes. Nous allons par exemple importer des donnes dans la table commerciaux. Ouvrez un diteur de texte et tapez les commandes suivantes : use score_db; insert into commerciaux (id,nom,prenom,Email,agenceID) values ('1','Bertaut', 'Laurence','lbertaut@utt.fr','1'), ('2','Lassale', 'Jacques','jlassale@utt.fr','2'), ('3','Chassenet','Luc','lchassenet@utt.fr','3');

! ! ! Attention aux accents, aux virgules et aux back quottes.


Enregistrez le fichier au format .sql. Comme fait prcdemment, importez le fichier et excutez-le. En affichant le contenu de la table commerciaux on obtient la figure ci-dessous.

Il est toujours recommand de faire une sauvegarde de secours de ses programmes. Nous allons donc enregistrer les requtes SQL qui ont t utilises pour crer la structure de la base. Ces requtes une fois enregistres dans un fichier pourront ensuite tre utilises pour recrer lidentique la base sauvegarde.

Il faut dabord sassurer que la base sauvegarder est bien slectionne dans la liste droulante de gauche. Cliquez sur le bouton exporter. Puis, renseignez les diffrents paramtres comme indiqu ci-dessous.

Cliquez sur excuter puis enregistrez le fichier. Ouvrez le fichier avec un diteur de texte, vous y retrouverez les requtes destines crer des tables et y faire des insertions si vous les aviez faites.

III. Les tables systemes


Dans les SGBDRs, il existe des tables qui ont t cres et qui grent le bon fonctionnement du systme. Elles sont regroupes dans la base de donnes mysql. La configuration des utilisateurs peut se faire directement partir de cette base. Table Columns_priv Db Host Tables_priv User Fonctions Stocke les droits daccs dun utilisateur sur les colonnes Stocke les droits daccs dun utilisateur sur une base de donnes Permet de restreindre les droits en cas de connexion partir dun ordinateur particulier Stocke les droits daccs dun utilisateur sur les tables dune base de donnes Stocke les utilisateurs, leur mot de passe et les droits daccs globaux

Pour illustrer limpact de ces tables sur le systme, nous allons crer un utilisateur et donc faire des modifications sur la table user. Afin de voir la structure de cette table, vous pouvez ouvrir une fentre sur le rpertoire C:\Program Files\easyphp5-3.2i\mysql\bin puis vous connecter la base de donnes mysql : C:\Program Files\easyphp5-3.2i\mysql\bin> mysql u root p mysql A lissue de cette commande, vous tes connect la base de donnes ds que vous obtenez le prompt sql> Vous pouvez alors saisir la commande select * from user ; afin dafficher les diffrents utilisateurs. Vous verrez quil ny en a quun seul pour le moment : cest root.

A laide de la commande GRANT, nous allons insrer lutilisateur coralie dans la table user. mysql> GRANT USAGE ON user to coralie@localhost WITH GRANT OPTION; puis sortir de mysql : mysql>exit; Coralie peut se connecter au serveur en local mais on ne lui accorde aucun droit sur les bases de donnes. Pour remdier cela, ouvrez une fentre de commande. Allez dans le rpertoire C:\Program Files\easyphp5-3.2i\mysql\bin puis lancez la commande mysql u coralie p mysql . Mysql vous demande alors un mot de passe, il ny en a pas, vous faites donc Entrer .

En tant que Coralie , essayez alors de crer une table. Que se passe-t-il ? Nous allons maintenant accorder des droits Coralie et ainsi en voir les consquences. Vous devez alors dconnecter coralie en faisant exit. Puis, vous vous connectez en tant que root : mysql u root p mysql, en ne saisissant aucun mot de passe. Dans PHPMyAdmin, excutez le requte select * from user. Le contenu de la table saffiche.

Pour lutilisateur coralie, transformez le N(no) de create_priv en Y(es) puis cliquez sur excuter. create_priv accorde lutilisateur le droit de crer des objets : bases de donnes, tables, index, etc. Ouvrez une fentre de commande. Allez dans le rpertoire c:\program files\easyphp-5.3.2i\mysql\bin puis lancez la commande mysql u coralie mysql ; En tant que Coralie , essayez alors de crer une table. a marche !

Ouvrez la documentation de MySQL et cherchez les dfinitions de chaque attribut associ aux utilisateurs. La documentation se trouve sur la page daccueil comme le montre la figure ci-dessous.

10

TP2
On vous demande de mettre en place une base de donnes intitule enseignement dcrivant les informations gres par le ministre de lenseignement et de la recherche pour raliser le suivi des activits de recherche de lensemble des chercheurs franais. Les relations mettre en place sont les suivantes : Chercheur [codeCH, nomCH, codeEQ*] Laboratoire [codeLABO, type, nomLABO, URL, codeDIR*] Equipe [codeEQ, nomEQ, codeRESP*, codeLABO*] Thme [codeTH, libell] Dfinir [codeEQ*, codeTH*] Travailler [codeCH*, codeTH*] La smantique de ces relations est la suivante. Les chercheurs recenss par le ministre sont caractriss par un nom et lquipe dans laquelle ils effectuent leurs recherches. Les laboratoires sont dcrits par un nom, un serveur accessible via http, un directeur qui est lui-mme un chercheur. Ces laboratoires peuvent tre un laboratoire universitaire, un laboratoire CNRS extrieur aux universits ou un laboratoire INRIA extrieur aux universits. Ils sont dcomposs en quipes. Chaque chercheur travaille dans une seule quipe. Les quipes, diriges par un chercheur, sont caractrises par un nom, et dfinissent lensemble des thmes de recherche des chercheurs quelles regroupent. Au sein de son quipe un chercheur peut travailler sur un ou plusieurs thmes. Chaque thme est identifi par un libell et un numro. Diffrentes quipes de diffrents laboratoires peuvent travailler sur le mme thme. Les contraintes dintgrit inhrentes cette partie de la base de donnes sont les suivantes. Elles indiquent que : - le type dun laboratoire est soit UNIV (pour universitaire), CNRS ou INRIA. - le responsable dune quipe est un chercheur de lquipe en question. - le directeur dun laboratoire est un chercheur dune des quipes du laboratoire en question. - un chercheur travaille sur des thmes abords par son quipe.

Partie 1 : PhpMyAdmin
On vous demande de crer la BD sous PhpMyAdmin. Cette implmentation doit mettre en uvre les contraintes dintgrit. Crez les tables par des commandes CREATE TABLE. Pour cela, sur la gauche de la page daccueil de phpMyAdmin, vous cliquez sur SQL (cf le schma ci-dessous). Attention, pour ajouter des contraintes dintgrit rfrentielles, il faut que les tables soient de type InnoDB. Pour acclrer les requtes, il faudra prvoir de crer des index sur les attributs cls trangres, dans les commandes CREATE TABLE. Allez dans la section 12.1.17 de laide en ligne pour en savoir plus et trouver des exemples. Pour retrouver les contraintes dintgrit que lon a dfinies, vous pouvez utiliser la commande show create table nom_table .

Ensuite valorisez la base de donnes en y insrant les donnes fournies en annexe 2.

11

Linsertion de donnes peut tre bloque par les contraintes de cl trangre quil est difficile en mysql de dsactiver. Il est donc conseill de procder en deux tapes : 1. crer les tables avec les contraintes dintgrit nonces ci-dessus 2. insrer les tuples puis dfinir les contraintes de cls trangres

Partie 2 : Commandes SQL


Exportez le contenu de chacune des tables contenant des tuples, en utilisant le formation .csv. On obtient les fichiers equipe.csv, chercheur.csv, laboratoire.csv... Videz alors le contenu des tables de la base de donnes cre avec PhpMyAdmin Nous allons voir une autre manire dinsrer des donnes dans une base de donnes, par lintermdiaire dun programme PHP. Ouvrez lditeur de texte (Context ou bloc notes) et tapez les commandes contenues dans fichier fournies en annexe 1 puis enregistrez le dans C:\program files\easyphp5-3.2i\www avec lextension .php Tout ce qui est en gras est ce que vous allez modifier plus tard.

Pointage vers les donnes.


On souhaite maintenant ajouter la photo de chaque chercheur. Etant donn le volume des photos, on prfre insrer dans la base de donnes un lien qui permettra dy accder plutt que la photo.. Les photos seront contenues dans C:\program files\easyphp5-3.2i\www Pour cela, nous allons modifier la table chercheur avec PHPMyAdmin en y rajoutant un champ source_photo qui indiquera le rpertoire o rcuprer les photos des chercheurs. Valorisez ce champ de la manire suivante : codeCH 1 2 3 4 5 6 7 8 9 10 nomCH Eric Moh Christine Chiab Chantal Jean-Marc Philippe Florence Remy Patrick codeEQ 1 2 2 1 2 2 1 2 1 2 Source_photo photo\eric.jpg photo\moh.jpg photo\christine.jpg photo\chiab.jpg photo\chantal.jpg photo\jean-Marc.jpg photo\philippe.jpg photo\florence.jpg photo\remy.jpg photo\patrick.jpg

Afin de pouvoir voir les photos lcran, il est ncessaire de crer un nouveau programme qui affichera chaque photo. Ce programme sera appel affiche1.php Ouvrez lditeur de texte (Context ou bloc notes) et tapez les commandes ci-dessous. Enregistrez le sous affiche1.php dans C:\program files\ easyphp5-3.2i \www

12

<?php $connexion=mysql_Pconnect("localhost", "root","mdpass"); if (!mysql_select_db("enseignement",$connexion)) { exit; } $sql="select * from chercheur"; $resultat=mysql_query ($sql); echo "<table border='80'>\n"; echo "<tr><td>codeCH </td><td> nomCH </td><td> codeEQ </td><td> photo </td> </tr>"; while ($ligne=mysql_fetch_array($resultat)) { $codeCH=$ligne['codeCH']; $nomCH=$ligne['nomCH']; $codeEQ=$ligne['codeEQ']; $photo=$ligne['source_photo']; echo "<tr><td>$codeCH </td><td>$nomCH </td><td> $codeEQ \"routine_affiche.php?photo= $photo\">Voir la photo</a> </td></tr>"; } echo "</table>\n"; ?> </td> <td> <a href=

!!! Noubliez pas de mettre votre mot de passe admin si vous en avez un la ligne 2 lendroit indiqu par mdpass en gras. Ouvrez nouveau lditeur de texte (Context ou bloc notes) et tapez les commandes ci-dessous. Enregistrez le sous routine_affiche.php dans C:\program files\easyphp5-3.2i\www <html> <head> <title></title> </head> <body> <a href="index.php"> <img src ="<?php echo $_GET['photo'] ?>" /> </body> </html>

!!! Dans C:\program files\easyphp5-3.2i\www, vous devez galement avoir un rpertoire photo qui contient les photos qui seront charges lorsque vous cliquerez sur le lien voir photo. Ouvrez le navigateur web et tapez http://localhost/affiche1.php sur votre page web. Un tableau saffiche et si vous cliquez sur le lien voir la photo une autre page web est charge et vous montre la photo.

13

TP3
Au cours de ce TP il vous est demand dcrire des requtes SQL sur la base de donnes de la sance prcdente. Dmarrez EasyPHP et lancez linvite de commandes. Allez dans c:\program files\easyphp5-3.2i\mysql\bin Tapez ensuite mysql u root p enseignement Ecrivez le code SQL correspondant aux requtes suivantes : 1. 2. 3. 4. Restituer le nom et le numro des chercheurs Restituer le nom des chercheurs et le nom de leur quipe Restituer le nom des chercheurs de lquipe SRA. Restituer les noms des chercheurs par ordre alphabtique.

5. 6. 7. 8. 9.

Restituer le nombre de chercheurs de lquipe SRA. Restituer, par chercheur, le nombre de thmes sur lesquels il travaille. Restituer le nombre moyen de chercheurs par laboratoire. Restituer le nombre dquipes ayant au moins cinq chercheurs.

Restituer les thmes de recherche des directeurs dquipe en indiquant le nom des chercheurs, le nom de lquipe et le nom des thmes. 10. Restituer les chercheurs travaillant sur le thme Bases de donnes ou sur le thme Gnie logiciel. 11. Restituer les chercheurs travaillant sur le thme Bases de Donnes mais pas sur le thme Gnie Logiciel. 12. Restituer les chercheurs travaillant sur le thme Systmes gographiques. 13. Restituer les chercheurs travaillant dans la mme quipe que le chercheur Eric.

On vous demande maintenant de rajouter dans la relation quipe lattribut budget qui dcrit le budget allou aux quipes. Valorisez cet attribut en donnant des valeurs quelconques au budget des quipes (compris entre 1500 et 2000 Euros). 14. Restituer les quipes dont le budget est compris entre 1500 et 2000 Euros. 15. Restituer les quipes dont le budget est suprieur celui de lquipe SRA. On souhaite modifier la table thme. Dans le cadre dune future restructuration de laboratoire, quelques chercheurs vont ds maintenant changer de thme de recherche. On vous demande de faire les modifications suivantes : 16. Tous les chercheurs qui travaillaient sur le thme Systmes gographiques vont dornavant travailler sur le thme Bases de donnes. 17. Restituer le nombre de chercheurs travaillant sur le thme bases de donnes. 18. Supprimer le thme Systmes gographiques. 19. Lquipe MDI vient de recruter Martin Trouvetout. Linsrer dans la base de donnes.

14

TP4
Le but de ce TP est de raliser un formulaire et sous-formulaire en utilisant les langages PHP et HTML. Pour cela, un rsum du cours sur la cration de formulaires vous est fourni et les types de formulaires sont explicits ci-dessous.

A. PRESENTATION DES FORMULAIRES VOULUS


La prsentation du formulaire ncessite lutilisation du langage HTML et PHP. Allez dans le rpertoire C:\program files\easyphp5-3.2i\www o vous crerez trois fichiers PHP que vous nommerez page1.php, page2.php et page3.php. Ces trois fichiers vont contenir des scripts de prsentations diffrentes. Rle de page1.php Cette page doit permettre laffichage du formulaire comme suit:

Lorsque le formulaire a t rempli, en le validant, la page2.php sera charge. Rle de page2.php Cette page affiche galement un formulaire suivant le statut de la personne lUTT. En effet le formulaire dun tudiant diffre de celui dun doctorant ou dun professeur.

15

Prsentation du formulaire si vous tes tudiant

Prsentation du formulaire si vous tes doctorant

Prsentation du formulaire si vous tes enseignant !!! Pour ceux qui le souhaitent, ils peuvent crer une base de donnes avec une table ayant comme attributs noms, prnoms(de la page1.php) de telle sorte que les donnes seront enregistres dans la base de donnes. Pour raliser cela, rfrez vous au TP2 o dans le script PHP vous faites une connexion Mysql, ensuite vous slectionnez la base de donnes voulue et enfin vous faites une commande insert. Ce script sera contenu dans la page2.php

16

Rle de page3.php Elle affiche le message suivant : Merci davoir rpondu au formulaire et vous affiche un lien vers la page daccueil.

B. RESUME DU CODE
En HTML, pour dire qu'on va insrer un formulaire on se sert de la balise <form>. On l'utilise de la manire suivante : <form name="nom_formulaire" method="post" action="nom_page charger"> On mettra ici les lments de notre formulaire. </form> 1) Les zones de texte <input type= "text" name= "nom" > 2) Zones de texte sur plusieurs lignes <textarea name= "nom" rows="valeur numrique" cols="valeur numrique" ></textarea> 3) Zones de texte de type password <input type= "password" name= "nom" > 4) Les boutons <input type= "radio" name= "nom" value= "valeur" checked="checked" />valeur <input type= "radio" name= "nom" value= "valeur1" />valeur1

5) Menu droulant <select name="choix"> <option value="choix1">Choix 1</option> <option value="choix2">Choix 2</option> <option value="choix3">Choix 3</option> <option value="choix4">Choix 4</option> </select>

6) Bouton de validation de type submit <input type= "submit" name= "nom" value= "valeur"> 7) Les checkbox

<input type="checkbox" name="case" /> Ma case cocher

17

<input type="checkbox" name="case" /> Ma case cocher2 !!! Noubliez de crer un tableau, douvrir des lignes et des colonnes comme vus dans le TP2

C. EXEMPLE, LE CODE DE LA PAGE1.PHP


Dans le code ci-dessous, vous trouvez la fois du code html et du code php (encadr par les balises < ?php et ?>. Vous devrez ajouter les balises de commentaires. En php, les commentaires commencent par // (comme en C). En html, ils sont encadrs par < ! et >. Vous trouverez une documentation sur php ladresse http://fr.php.net/manual/fr/index.php et sur html ladresse : http://www.commentcamarche.net/contents/html/ <form name="form1" method="POST" action="page2.php"> balises html de creation de formulaire <table border="1"> cration dun tableau <tr><td><div align="right">Nom :</div></td><td><input name="nom" type="text"</td></tr> ouverture dune ligne contenant deux colonnes. La premire affiche nom , la deuxime affiche une zone de texte. Les balises <div align=riht></div> permettent dcrire sur la droite de la premire colonne <tr><td><div align="right">Prnoms :</div></td><td><input name="prenoms" type="text"</td></tr> ouverture dune ligne contenant deux colonnes. La premire affiche Prnoms , la deuxime affiche une zone de texte. <tr><td><div align="right">Age :</div></td><td><select name="age">cration dun menu droulant <?php insertion du langage PHP qui permettra de faire une boucle for For ($i=16 ;$i<=30 ; $i++) Echo "<option value= $i >$i </option>"; affichage des valeurs allant de 16 30 ?> </select></td></tr> <tr><td><div align="right">Sexe :</div></td><td> <input type="radio" name="Sexe" value="Masculin" checked="checked" /> M <input type="radio" name="Sexe" value="Feminin" /> F</td></tr>cration dun bouton. <tr><td><div align="right">adresse :</div></td><td><textarea name="adresse" rows="3" cols="30"></textarea></td></tr>cration dune zone de texte <tr><td><div align="right">Quel est votre statut l'UTT?</div><td><select name="statut"> <?php Echo "<option value= Etudiant>Etudiant </option>"; Echo "<option value= Doctorant >Doctorant</option>"; Echo "<option value= Professeur >Professeur</option>"; ?> </select></td></tr>creation dun menu droulant <tr> <td><div align="right">Mot de passe :</div></td><td><input name="pass" type="password"></td></tr> cration dune zone de texte qui affichera les caractres par des points. <tr><td colspan="2"><div align="center"><input type="submit" name="submit" value="valider"></td></tr> cration dun bouton de type submit </table>fermeture du tableau </form> fermeture du formulaire

D. REALISATION DU CODE DE LA PAGE2.PHP


La spcificit de cette page est que vous allez faire des tests sur la valeur du statut de la personne qui a t recueilli en page1.php. En effet, selon quil sagit dun doctorant, dun tudiant ou dun professeur, le code qui permet dafficher le formulaire sera diffrent.

18

Annexe1 : fichier
<?php //indique le dbut d'excution du programme php $connexion=mysql_Pconnect("localhost", "root","mdpass"); //connexion la BD Mysql $fichier = "donnes.csv"; // on met le contenu de donnes.csv dans $fichier $fic = fopen($fichier, 'r'); //on ouvre $fichier en lecture seule et on le met dans $fic if (!mysql_select_db("enseignement",$connexion)) // on slectionne la BD "enseignement " {exit;} // si la slection de la BD choue, on sort du programme. echo "<table border='1'>\n";// on cr un tableau dont la taille de la bordure est gale 1 et on l'affiche. while (!feof($fic)) {// tant qu'on n'a pas encore atteint la fin de $fic $ligne = fgetcsv($fic, 1024);// la variable ligne va contenir les champs csv(qui sont spars par des virgules) echo "<tr>";// ouverture d'une ligne qu'on affiche $j = sizeof($ligne); //$j correspond la taille de la ligne for ($i = 0; $i < $j; $i++) { // la boucle for permet de crer des colonnes dans lesquels on mettra chaque champ csv. echo "<td>$ligne[$i]</td>"; } $sql="INSERT INTO nomtable (attribut1, attribut2...) VALUES ('$ligne[$i]','$ligne[$j]',)"; // on insre le contenu de chaque colonne $resultat=mysql_query ($sql); // indique au langage PHP qu'il s'agit d'une requte SQL echo "</tr>";// fermeture de la ligne qu'on avait ouverte plus haut. } echo "</table>\n";//fermeture du tableau qu'on avait cr. ?>// fin de l'excution du programme php. Ce que fait ce fichier : Il ouvre le fichier donnees.csv tant que le fichier na pas t lu en entier, il cr un tableau dont le nombre de colonnes est gal au nombre de valeurs spares par des virgules et le nombre de lignes est gal au nombre de ligne du fichier donnes.csv. Il insre ensuite chaque valeur (les valeurs sont spares par des virgules) dans le tableau. Dans ce script, il y a une requte SQL qui va insrer dans une table de Mysql les donnes contenues dans le tableau. Nous allons modifier ce code de faon valoriser la table chercheur par exemple <?php $connexion=mysql_Pconnect("localhost", "root"); $fichier = "donnees.csv"; $fic = fopen($fichier, 'r'); if (!mysql_select_db("enseignement",$connexion)) {exit;} echo "<table border='1'>\n"; while (!feof($fic)) { $ligne = fgetcsv($fic, 1024); echo "<tr>"; $j = sizeof($ligne); for ($i = 0; $i < $j; $i++) { echo "<td>$ligne[$i]</td>"; } $sql="INSERT INTO chercheur (codeCH, nomCH, codeEQ) VALUES ('$ligne[0]','$ligne[1]', ' $ligne[2]')"; $resultat=mysql_query ($sql); echo "</tr>"; } echo "</table>\n"; ?>

19

Donnees.csv est en fait le fichier chercheur.csv que vous avez d obtenir dans le TP2, lorsque vous avez export le contenu de la table chercheur. Il contient les tuples ci-dessous. A la suite de cette exportation, vous aviez vid la table chercheur. "1","Eric","1" "2","Moh","2" "3","Christine","2" "4","Chiab","1" "5","Chantal","2" "6","Jean-Marc","2" "7","Philippe","1" "8","Florence","2" "9","Rmy","1" "10","Patrick","2" !!! Respectez les doubles quottes et les virgules. !!! Ce fichier doit galement tre enregistr dans C:\program files\easyphp5-3.2i\www !!! Assurez-vous que le curseur se trouve sur le dernier enregistrement. Exemple :

Ouvrez maintenant le navigateur web et tapez http://localhost/fichier.php. Le programme fichier est excut sur votre page web o vous verrez quun tableau a t cr contenant les donnes. Si vous ouvrez votre table chercheur (dans la BD enseignement) grce la commande suivante : select * from chercheur ; vous verrez que ces donnes ont t insres dans la table chercheur Modifiez nouveau fichier.php (les valeurs en gras sont celles que vous devez modifier) de manire valoriser les autres tables dont les contenus sont donns ci-dessous.

20

Annexe2 : contenu des tables.


Table Chercheur. codeCH 1 2 3 4 5 6 7 8 9 10 nomCH Eric Moh Christine Chiab Chantal Jean-Marc Philippe Florence Remy Patrick codeEQ 1 2 2 2 3 2 1 2 1 3

Table laboratoire codeLABO 1 2

Type UNIV UNIV

nomLABO IRIT CRESTIC

URL www.irit.fr crestic.univ-reims.fr/

codeDIR 6 8

Table equipe codeEQ 1 2 3 Table thme codeTH 1 2 3 4 5 6

nomEQ MSI SRA MDL

codeRESP 4 8 9

codeLABO 1 1 2

Libelle Bases de donnes Systmes documentaires Systmes hypermdia Gnie logiciel Interface homme machine Systmes gographiques.

Table definir codeEQ 1 1 1 2 2 2 2

codeTH 1 4 5 1 2 3 6

50

Table travailler codeCH 1 2 3 4 4 5 5 6 7 8 9 9 10

CodeTH 1 2 3 1 4 2 3 1 5 3 4 5 6

51

Das könnte Ihnen auch gefallen