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. 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. 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. 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. 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. 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);
?>
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. 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. 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