Vous êtes sur la page 1sur 10

Institut Des Hautes Etudes de Sousse 1

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
Année Scolaire 2014-2015

-- ----------------------------
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,

Enseignant : Mme Ouaz Ines 1


Institut Des Hautes Etudes de Sousse 2

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');
Année Scolaire 2014-2015

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');

Enseignant : Mme Ouaz Ines 2


Institut Des Hautes Etudes de Sousse 3

Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures :
2H un script permettant d’afficher le
3) Créer
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
Année Scolaire 2014-2015

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>';
}

Enseignant : Mme Ouaz Ines 3


Institut Des Hautes Etudes de Sousse 4

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>
Année Scolaire 2014-2015

<hr width="50%">
</center>
<center>
<fieldset>
<legend> Nouveau Modele </legend>
<form name="" method="post" action="">

Enseignant : Mme Ouaz Ines 4


Institut Des Hautes Etudes de Sousse 5

Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures :
2H
Modè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
Année Scolaire 2014-2015

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

Enseignant : Mme Ouaz Ines 5


Institut Des Hautes Etudes de Sousse 6

Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures :
2H
dé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
Année Scolaire 2014-2015

vehicule');
//requete de selection
$sql="select * from voiture";
$resultat=mysql_query($sql);

?>

Enseignant : Mme Ouaz Ines 6


Institut Des Hautes Etudes de Sousse 7

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>
Année Scolaire 2014-2015

<select name="matricule">
<?php
//traitement de resultat
while($enreg=mysql_fetch_array($resultat))
{
echo '<option value="'.$enreg['id'].'">'.$enreg['immatriculation'].'</option>';

Enseignant : Mme Ouaz Ines 7


Institut Des Hautes Etudes de Sousse 8

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>
Année Scolaire 2014-2015

</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.

Enseignant : Mme Ouaz Ines 8


Institut Des Hautes Etudes de Sousse 9

Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures :
2H
Afficher 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>
Année Scolaire 2014-2015

<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>

Enseignant : Mme Ouaz Ines 9


Institut Des Hautes Etudes de Sousse 10

Niveau : 2ème année Informatique Matière : Programmation Web PHP Nombres d’heures :
</tr> 2H
<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>';
Année Scolaire 2014-2015

}
}
?>
</table></fieldset> </center></body>
</html>

BON COURAGE 

1
Enseignant : Mme Ouaz Ines 0

Vous aimerez peut-être aussi