Académique Documents
Professionnel Documents
Culture Documents
Base de données
Soit la base de données BD-APP-00 comportant la table Magasins où est enregistré pour chaque
magasin : le code, la région, le responsable et le profit (bénéfice) du mois de Décembre :
Magasins(Code, Region, Responsable, Profit)
Ci-dessous le contenu de la table Magasins :
Code Region Responsable Profit
PV111 SE Si Ali 2501
PV222 NO Si Salah 8615
PV333 NE Si Mbarak 724
PV444 NE Si Omar 1700
PV555 SE Si Hammadi 10255
PV666 SO Si Salem 3507
PV777 SE Mme Massouda 4014
PV888 NE Si Ahmed 6410
PV999 SE Mme Imen 666
Le tableau ci-dessous indique la description des champs de la table Magasins :
Champ Type
Code Chaîne de 5 caractères
Region Chaîne de 2 caractères
Responsable Chaîne de 20 caractères
Profit Entier (Int)
Règles à respecter
1) Une page web qui comporte le moindre petit bout de code PHP, doit avoir l’extension .php (en
clair : si vous avez une page nommée index.htm et que vous y insérez du code PHP, il vous
faudra la renommer en index.php.
2) Un code PHP doit être délimité par les deux marqueurs <?php et ?>
3) Les variables en PHP commencent obligatoirement par le signe $
4) Chaque instruction en PHP se termine obligatoirement par un point-virgule.
5) Pour les variables, PHP est sensible à la casse ($var, $VAR et $vaR sont 3 variables
différentes)
Question 01
Afficher le code, le responsable ainsi que le profit de chacune des magasins de la région du
sud-est (SE)
Réponse
Step01 : Connexion à MySql et sélection de la base de données :
mysql_connect("localhost","root");
mysql_select_db("BD-APP-00");
Step02-Version01 : Exécution de la requête :
$R=mysql_query("SELECT * FROM Magasins WHERE Region='SE'");
On peut aussi utiliser une variable intermédiaire pour y mettre la requête :
$Q="SELECT * FROM Magasins WHERE Region='SE'";
$R=mysql_query($Q);
La variable $R contiendra le résultat de l’exécution de la requête qui est une ressource MySql
illustrée par le schéma suivant :
$R
0 1 2 3
"Code" "Region" "Responsable" "Profit"
PV111 SE Si Ali 2501
0 1 2 3
"Code" "Region" "Responsable" "Profit"
PV555 SE Si Hammadi 10255
0 1 2 3
"Code" "Region" "Responsable" "Profit"
PV777 SE Mme Massouda 4014
0 1 2 3
"Code" "Region" "Responsable" "Profit"
PV999 SE Mme Imen 666
Note 2 : Les tableaux sont à la fois indicés et associatifs (indices entiers et indices chaînes).
0 1 2
"Code" "Responsable" "Profit"
PV555 Si Hammadi 10255
0 1 2
"Code" "Responsable" "Profit"
PV777 Mme Massouda 4014
0 1 2
"Code" "Responsable" "Profit"
PV999 Mme Imen 666
0 1 2
"C" "R" "P"
PV555 Si Hammadi 10255
0 1 2
"C" "R" "P"
PV777 Mme Massouda 4014
0 1 2
"C" "R" "P"
PV999 Mme Imen 666
Question 02
Vérifier l’existence d’un magasin dont son code est écrit dans une zone de texte nommée T1
et envoyée par un formulaire avec la méthode POST vers notre fichier PHP
Réponse
Step01 : Connexion à MySql et sélection de la base de données :
mysql_connect("localhost","root");
mysql_select_db("BD-APP-00");
Step02 : Récupération du code du magasin :
$Mag=$_POST["T1"];
//Lecture du tableau
$T=mysql_fetch_array($R);
//Vérification de l'existence : $T["COUNT(*)"] ou $T[0]
if($T[0]){ echo"Magasin existant"; }
else { echo"Magasin inexistant"; }
Après exécution de la requête on aura soit une ressource vide (si le code n’existe pas), soit une
ressource avec un seul tableau (si le code existe).
Pour vérifier l’existence, il suffit de savoir combien de tableau dans la ressource retournée (en
utilisant la fonction mysql_num_rows) :
//Vérification de l'existence
if(mysql_num_rows($R)){ echo"Magasin existant"; }
else { echo"Magasin inexistant"; }
Question 03
Réponse
Step01 : Connexion à MySql et sélection de la base de données :
mysql_connect("localhost","root");
mysql_select_db("BD-APP-00");
Step02-Version01 : Calcul et affichage de la somme des profits par région : Sans utiliser GROUP BY
//Sélection des différentes régions
$R1=mysql_query("SELECT DISTINCT Region FROM Magasins");
//Pour chaque région, on détermine et on affiche la somme des profits
While ($T1=mysql_fetch_array($R1)){
$Reg=$T1["Region"];
//**** On détermine la somme des profits de la région $Reg *******
$Q="SELECT SUM(Profit) AS S FROM Magasins WHERE Region='$Reg'";
$R2=mysql_query($Q);
$T2=mysql_fetch_array($R2);
//**** Affichage de la région en cours ainsi que la somme des profits
echo $Reg."#".$T2["S"];
}
Step02-Version02 : Calcul et affichage de la somme des profits par région : Avec GROUP BY
$Q="SELECT Region AS R, SUM(Profit) AS S FROM Magasins GROUP BY Region";
$R=mysql_query($Q);
While ($T=mysql_fetch_array($R)){
echo $T["R"]."#".$T["S"];
}
Question 04
Retrancher 1000 dinars du bénéfice de chaque magasin ayant un profit qui dépasse 5000
dinars, et afficher un message de succès ou d’échec de l’opération.
Réponse
Step02 : Calcul et affichage de la somme des profits par région :
$Q="UPDATE Magasins SET Profit=Profit-1000 WHERE Profit>5000";
$R=mysql_query($Q);
if($R) {echo "Opération réussite";}
else {echo "Opération échouée";}
© Lycée Attarine Ariana 2019-2020 Lycee.attarine@gmail.com