0% ont trouvé ce document utile (0 vote)
93 vues10 pages

Examen PHP/MySQL Corrigé 2014-2015

Le document décrit un problème relatif à une base de données de véhicules en circulation contenant trois tables (Modèle, Voiture, Propriétaire) et présente cinq questions portant sur la création de la base de données, le remplissage des tables, l'affichage des données et l'insertion de nouvelles données.

Transféré par

chiraz bouzid
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
93 vues10 pages

Examen PHP/MySQL Corrigé 2014-2015

Le document décrit un problème relatif à une base de données de véhicules en circulation contenant trois tables (Modèle, Voiture, Propriétaire) et présente cinq questions portant sur la création de la base de données, le remplissage des tables, l'affichage des données et l'insertion de nouvelles données.

Transféré par

chiraz bouzid
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

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"


"[Link]
<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:[Link]');
}
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"


"[Link]
<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 [Link]
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"


"[Link]
<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="[Link]" >
<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 =
[Link] AND voiture.id_modele = [Link] AND [Link]='".$_POST['nom']."'
AND [Link]='".$_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