Examen principal- php - correction

2 920 vues

Publié le

Matière: Programmation web: PHP
Sujet et Correction examen principal
Base de données MySql

Publié dans : Formation
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 920
Sur SlideShare
0
Issues des intégrations
0
Intégrations
16
Actions
Partages
0
Téléchargements
131
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Examen principal- php - correction

  1. 1. Enseignant : Mme Ouaz Ines AnnéeScolaire2014-2015 1 1Institut Des Hautes Etudes de Sousse Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures : 2H Examen principal : Programmation Web PHP PROBLEME : Service 2000 Considérant une base de données VEHICULE_CIRCULATION qui enregistre les certificats d’immatriculation des véhicules en circulation (carte grise). La base contient 3 tables Modèle, Voiture et Propriétaire. Elle est présentée comme l’image ci- contre. 1) Essayez de créer la base avec les tables nécessaires. La table propriétaire contient une clé secondaire qui se réfère à la table voiture. La table voiture contient elle- même une clé secondaire qui est en relation aussi avec la table modèle. -- ---------------------------- -- Table structure for modele -- ---------------------------- CREATE TABLE `modele` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `modele` varchar(15) NOT NULL, `marque` varchar(15) NOT NULL, `puissance` varchar(15) NOT NULL, `carburant` varchar(15) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for proprietaire -- ---------------------------- CREATE TABLE `proprietaire` ( `ID` int(11) NOT NULL AUTO_INCREMENT, `NOM` varchar(15) NOT NULL, `PRENOM` varchar(15) NOT NULL, `ADRESSE` varchar(50) NOT NULL,
  2. 2. Enseignant : Mme Ouaz Ines AnnéeScolaire2014-2015 2 2Institut Des Hautes Etudes de Sousse Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures : 2H`CODE_POSTAL` int(5) NOT NULL, `VILLE` varchar(15) NOT NULL, `TEL` int(8) NOT NULL, `ID_VOITURE` int(11) unsigned DEFAULT NULL, PRIMARY KEY (`ID`), KEY `fk_id_voiture` (`ID_VOITURE`), CONSTRAINT `fk_id_voiture` FOREIGN KEY (`ID_VOITURE`) REFERENCES `voiture` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1; -- ---------------------------- -- Table structure for voiture -- ---------------------------- CREATE TABLE `voiture` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `immatriculation` varchar(20) NOT NULL, `couleur` varchar(15) NOT NULL, `kilometrage` int(11) NOT NULL, `id_modele` int(11) unsigned DEFAULT NULL, PRIMARY KEY (`id`), KEY `fk_modele` (`id_modele`), CONSTRAINT `fk_modele` FOREIGN KEY (`id_modele`) REFERENCES `modele` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=latin1; 2) Essayez de remplir la table Modèle avec les données suivantes : INSERT INTO `modele` VALUES ('1', '108', 'peugeot', '4CV', 'Essence'); INSERT INTO `modele` VALUES ('2', '508', 'peugeot', '7CV', 'Essence'); INSERT INTO `modele` VALUES ('3', '308', 'peugeot', '4CV', 'Essence'); INSERT INTO `modele` VALUES ('4', 'Megane Coupe', 'renault', '5CV', 'Diesel'); INSERT INTO `modele` VALUES ('5', 'Laguna', 'renault', '6CV', 'Diesel'); INSERT INTO `modele` VALUES ('6', 'Clio', 'renault', '4CV', 'Essence'); INSERT INTO `modele` VALUES ('7', 'Rio', 'Kia', '5CV', 'Essence'); INSERT INTO `modele` VALUES ('8', 'Sorento', 'Kia', '12CV', 'Diesel');
  3. 3. Enseignant : Mme Ouaz Ines AnnéeScolaire2014-2015 3 3Institut Des Hautes Etudes de Sousse Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures : 2H3) Créer un script permettant d’afficher le contenu de la table modèle dans un tableau HTML dans une page nommée liste_modele.php. Les résultats doivent être triés par marque. La requête va être sous la forme « SELECT * FROM modele ORDER BY marque ». <html> <head> <title>Modèle de Véhicules</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <?php // connexion au serveur et à la base scoop mysql_connect('localhost','root','') or die('Imposible de connecter au serveur'); mysql_select_db('vehicule_circulation') or die('Impossible de connecter à la base vehicule'); //requete de selection $sql="select * from modele order by marque"; $resultat=mysql_query($sql); ?> <body> <br> <br> <br> <hr width="50%"> <center><h3>Liste des modèles</h3> <hr width="50%"> </center> <center><table border="1" > <th bgcolor="#A5DDFD">Modèle</th><th bgcolor="#A5DDFD">Marque</th><th bgcolor="#A5DDFD">Puissance</th><th bgcolor="#A5DDFD">Carburant</th> <?php //traitement de resultat while($enreg=mysql_fetch_array($resultat)) { echo '<tr><td>'.$enreg['modele'].'</td><td>'.$enreg['marque'].'</td><td>'.$enreg['puissa nce'].'</td><td>'.$enreg['carburant'].'</td></tr>'; }
  4. 4. Enseignant : Mme Ouaz Ines AnnéeScolaire2014-2015 4 4Institut Des Hautes Etudes de Sousse Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures : 2H?> </table></center> </body> </html> 4) Créer un formulaire permettant l’insertion de nouvelles données dans la table modèle et enregistrer là dans une nouvelle page new_modele.php. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Nouveau Modèle</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style> fieldset { background-color:#CCC; max-width:500px; padding:16px; border:2px solid blue; -moz-border-radius:8px; -webkit-border-radius:8px; border-radius:8px; } </style> </head> <body> <br> <br> <br> <hr width="50%"> <center><h3>Ajout Nouveau Modèle</h3> <hr width="50%"> </center> <center> <fieldset> <legend> Nouveau Modele </legend> <form name="" method="post" action="">
  5. 5. Enseignant : Mme Ouaz Ines AnnéeScolaire2014-2015 5 5Institut Des Hautes Etudes de Sousse Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures : 2HModèle : <input name="modele" type="text"/></br> Marque : <input name="marque" type="text"/></br> Puissance : <input name="puissance" type="text"/></br> Carburant : <input name="carburant" type="text"/></br> <input type="submit" value="Ajouter" name="ok"/> <input type="reset" value="Annuler" /> </form> </fieldset> </center> <?php if (isset($_POST['ok'])){ // connexion au serveur et à la base scoop mysql_connect('localhost','root','') or die('Imposible de connecter au serveur'); mysql_select_db('vehicule_circulation') or die('Impossible de connecter à la base vehicule'); //requete d'insertion $sql='insert into modele values("","'.$_POST['modele'].'","'.$_POST['marque'].'","'.$_POST['puissance'].'","'.$_ POST['carburant'].'")'; $inserts=mysql_query($sql); if(!$inserts) { $message = 'INVALId query:' .mysql_error().'n'; $message .= 'whole query' .$sql; die($message); }else{ header('location:modele.php'); } mysql_close(); } ?> </body> </html> 5) Essayez de remplir la table voiture avec des insertions simultanées saisies manuellement. Créer après un formulaire permettant l’insertion simultanée des coordonnées d’une personne dans la table propriétaire dans la page new_proprietaire.php. Il doit contenir les zones de saisie des coordonnées de la personne et une liste
  6. 6. Enseignant : Mme Ouaz Ines AnnéeScolaire2014-2015 6 6Institut Des Hautes Etudes de Sousse Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures : 2Hdéroulante remplies dynamiquement à partir de la base de données contenant la liste des matricules des voitures existants dans la table voiture. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Nouveau Modèle</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style> fieldset { background-color:#CCC; max-width:500px; padding:16px; border:2px solid blue; -moz-border-radius:8px; -webkit-border-radius:8px; border-radius:8px; text-align: left; } </style> </head> <?php function alerte($ch) { $code="<script type="text/javascript">"; $code.="alert('$ch');"; $code.="</script>"; echo $code; } // connexion au serveur et à la base scoop mysql_connect('localhost','root','') or die('Imposible de connecter au serveur'); mysql_select_db('vehicule_circulation') or die('Impossible de connecter à la base vehicule'); //requete de selection $sql="select * from voiture"; $resultat=mysql_query($sql); ?>
  7. 7. Enseignant : Mme Ouaz Ines AnnéeScolaire2014-2015 7 7Institut Des Hautes Etudes de Sousse Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures : 2H<body> <br> <br> <br> <hr width="50%"> <center><h3>Ajout Nouveau Propriétaire</h3> <hr width="50%"> </center> <center> <fieldset > <legend> Nouveau propriétaire </legend> <form name="" method="post" action="" > <table> <tr> <td>Nom :</td><td><input name="nom" type="text"/></td> </tr> <tr> <td>Prénom :</td><td><input name="prenom" type="text"/></td> </tr> <tr> <td>Adrese :</td><td><input name="adresse" type="text"/></td> </tr> <tr> <td>Code Postal :</td><td><input name="cdp" type="number"/></td> </tr> <tr> <td>Ville :</td><td><input name="ville" type="text"/></td> </tr> <tr> <td>Téléphone :</td><td><input name="tel" type="number"/></td> </tr> <tr> <td>Immatriculation :</td> <td> <select name="matricule"> <?php //traitement de resultat while($enreg=mysql_fetch_array($resultat)) { echo '<option value="'.$enreg['id'].'">'.$enreg['immatriculation'].'</option>';
  8. 8. Enseignant : Mme Ouaz Ines AnnéeScolaire2014-2015 8 8Institut Des Hautes Etudes de Sousse Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures : 2H} ?> </select> </td> </tr> <tr> <td></td> <td><input type="submit" value="Ajouter" name="ok"/><input type="reset" value="Annuler" /></td> </tr> </table> </form> </fieldset> </center> <?php if (isset($_POST['ok'])){ //requete d'insertion $sql_insert='insert into proprietaire values("","'.$_POST['nom'].'","'.$_POST['prenom'].'","'.$_POST['adresse'].'","'.$_POST ['cdp'].'","'.$_POST['ville'].'" ,"'.$_POST['tel'].'","'.$_POST['matricule'].'")'; $inserts=mysql_query($sql_insert); if(!$inserts) { $message = 'INVALId query:' .mysql_error().'n'; $message .= 'whole query' .$sql_insert; die($message); } else{ alerte("Le propriétaire ".$_POST['nom']." ".$_POST['prenom']." est ajouté avec succés"); } mysql_close(); } ?> </body> </html> 6) Créer un formulaire de recherche recherche.php permettant de retrouver tous les véhicules possédés par une personne donnée.
  9. 9. Enseignant : Mme Ouaz Ines AnnéeScolaire2014-2015 9 9Institut Des Hautes Etudes de Sousse Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures : 2HAfficher les résultats sous forme de tableau HTML en précisant les détails suivants : couleur, kilométrage, marque, modèle, puissance et carburant. Il va y avoir une jointure entre les trois tables propriétaire, voiture et modèle et la requête va être sous la forme suivante : <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Recherche Véhicule</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style> fieldset { background-color:#CCC; max-width:500px; padding:16px; border:2px solid blue; -moz-border-radius:8px; -webkit-border-radius:8px; border-radius:8px; text-align: left; } </style> </head> <body> <br> <br> <br> <hr width="50%"> <center><h3>Recherche Voiture par Propriétaire</h3> <hr width="50%"> </center> <center> <fieldset > <legend> Recherche avancée </legend> <form name="recherche" method="post" action="recherche.php" > <table> <tr> <td>Nom :</td><td><input name="nom" type="text"/></td>
  10. 10. Enseignant : Mme Ouaz Ines AnnéeScolaire2014-2015 1 0 10Institut Des Hautes Etudes de Sousse Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures : 2H</tr> <tr> <td>Prénom :</td><td><input name="prenom" type="text"/></td> </tr> <tr> <td></td> <td><input type="submit" value="Rechercher" name="recherche"/></td> </tr> </table> </form> <?php if (isset($_POST['recherche'])){ // connexion au serveur et à la base scoop mysql_connect('localhost','root','') or die('Imposible de connecter au serveur'); mysql_select_db('vehicule_circulation') or die('Impossible de connecter à la base vehicule'); //requete de selection $sql="SELECT * From proprietaire, modele, voiture WHERE proprietaire.id_voiture = voiture.id AND voiture.id_modele = modele.id AND proprietaire.nom='".$_POST['nom']."' AND proprietaire.prenom='".$_POST['prenom']."'"; $resultat=mysql_query($sql); ?> <br><br><hr width="50%"> <table border="1" > <th bgcolor="#A5DDFD">Couleur</th> <th bgcolor="#A5DDFD">Kilométrage</th> <th bgcolor="#A5DDFD">Modèle</th> <th bgcolor="#A5DDFD">Marque</th> <th bgcolor="#A5DDFD">Puissance</th> <th bgcolor="#A5DDFD">Carburant</th> <?php //traitement de resultat while($enreg=mysql_fetch_array($resultat)) { echo '<tr><td>'.$enreg['couleur'].'</td>'; echo '<td>'.$enreg['kilometrage'].'</td>'; echo '<td>'.$enreg['modele'].'</td>'; echo '<td>'.$enreg['marque'].'</td>'; echo '<td>'.$enreg['puissance'].'</td>'; echo '<td>'.$enreg['carburant'].'</td></tr>'; } } ?> </table></fieldset> </center></body> </html> BON COURAGE 

×