Correction exercices les bases de données MySQL et PHP : Série 01
Sommaire
- 1-
- Application 01
- 1.1- Énoncé
- 1.2- Solution
- 1.3- Script de création des tables de la base
- 1.4- Script de remplissage du table
gouvernorats
- 1.5- Script de remplissage du table
apprenants
- 1.6- Script de remplissage du table
groupes
- 1.7- Script de remplissage du table
groupes
- 1.8- Page: connection_oo.php
- 1.9- Page: connection_p.php
- 1.10- Page: index.php
- 2- Exercice 01
- 2.1- Énoncé
- 2.2- Solution
- 3- Exercice 02
- 3.1- Énoncé
- 3.2- Solution
- 4- Exercice 03
- 4.1- Énoncé
- 4.2- Solution
- 5- Exercice 04
- 5.1- Énoncé
- 5.2- Solution
- 5.2.1- Sommaire du cours PHP
Correction exercices les bases de données MySQL et PHP : Série 01
- Application 01
-
Énoncé
- Vous pouvez visualiser l’énoncé de l’exercice
-
Solution
-
Script de création des tables de la base
-
Script de remplissage du table
gouvernorats
-
Script de remplissage du table
apprenants
-
Script de remplissage du table
groupes
-
Script de remplissage du table
groupes
-
Page: connection_oo.php
-
Page: connection_p.php
-
Page: index.php
-
Exercice 01
-
Énoncé
- Vous pouvez visualiser l’énoncé de l’exercice
-
Solution
-
Exercice 02
-
Énoncé
- Vous pouvez visualiser l’énoncé de l’exercice
-
Solution
-
Exercice 03
-
Énoncé
- Vous pouvez visualiser l’énoncé de l’exercice
-
Solution
-
Exercice 04
-
Énoncé
- Vous pouvez visualiser l’énoncé de l’exercice
-
Solution
-- Table pour les gouvernorats
CREATE TABLE gouvernorats (
codeGouv INT NOT NULL,
intituleGouv VARCHAR(100),
PRIMARY KEY (codeGouv)
);
-- Table pour les apprenants
CREATE TABLE apprenants (
cin INT NOT NULL,
prenomNom VARCHAR(100),
dteNaiss DATETIME,
genre ENUM('Homme', 'Femme'),
adresse VARCHAR(255),
cP INT,
codeGouv INT,
PRIMARY KEY (cin),
FOREIGN KEY (codeGouv) REFERENCES gouvernorats(codeGouv)
);
-- Table pour les groupes
CREATE TABLE groupes (
cdeGroupe VARCHAR(20) NOT NULL,
intGroupe VARCHAR(200),
dteEntreeGroupe DATETIME,
dteSortieGroupe DATETIME,
PRIMARY KEY (cdeGroupe)
);
-- Table pour les inscriptions
CREATE TABLE inscriptions (
cdeInscription INT NOT NULL AUTO_INCREMENT,
cin INT,
cdeGroupe VARCHAR(20),
dteInscription DATETIME,
PRIMARY KEY (cdeInscription),
FOREIGN KEY (cin) REFERENCES apprenants(cin),
FOREIGN KEY (cdeGroupe) REFERENCES groupes(cdeGroupe)
);
INSERT INTO gouvernorats (codeGouv, intituleGouv) VALUES
(1, 'Tunis'), (2, 'Ariana'), (3, 'Ben Arous'), (4, 'Manouba'), (5, 'Nabeul'),
(6, 'Zaghouan'),
(7, 'Bizerte'), (8, 'Béja'),
(9, 'Jendouba'), (10, 'Kef'), (11, 'Siliana'), (12, 'Kairouan'), (13, 'Kasserine'),
(14, 'Sidi Bouzid'), (15, 'Sousse'), (16, 'Monastir'), (17, 'Mahdia'), (18, 'Sfax'),
(19, 'Gabès'), (20, 'Medenine'), (21, 'Tataouine'), (22, 'Gafsa'), (23, 'Tozeur'), (24, 'Kébili');
INSERT INTO apprenants (cin, prenomNom, dteNaiss, genre, adresse, cP, codeGouv) VALUES
(12345678, 'Ahmed Ben Ali', '1999-06-10', 'Homme', 'Rue de la Liberté, Tunis', 1000, 1),
(23456789, 'Sara Othmani', '2001-02-15', 'Femme', 'Avenue Habib Bourguiba, Ariana', 2080, 2),
(34567890, 'Ali Ben Salah', '1998-04-28', 'Homme', 'Rue du 2 Mars, Ben Arous', 2013, 3),
(45678901, 'Nadia Chaari', '2000-09-23', 'Femme', 'Rue de la Poste, Manouba', 2010, 4),
(56789012, 'Hatem Bouzidi', '1997-11-17', 'Homme', 'Rue de la Plage, Nabeul', 8000, 5),
(67890123, 'Mariem Jlassi', '2001-01-05', 'Femme', 'Rue du Lac, Zaghouan', 1100, 6),
(78901234, 'Youssef Ghoul', '1999-08-08', 'Homme', 'Rue de la Gare, Bizerte', 1100, 7);
INSERT INTO apprenants (cin, prenomNom, dteNaiss, genre, adresse, cP, codeGouv) VALUES
(19345678, 'Ali Ben Ali', '1995-03-15', 'Homme', 'Rue Ibn Khaldoun, Tunis', 1000, 1),
(29456789, 'Fatma Ben Salah', '1998-06-10', 'Femme', 'Avenue Habib Bourguiba, Sousse', 4000, 15),
(39567890, 'Mohamed Amine Bouzidi', '2001-09-27', 'Homme', 'Rue Abderrahmen Mami, Nabeul', 8000, 5),
(49678901, 'Samira Haddad', '2000-12-25', 'Femme', 'Boulevard Mohamed V, Bizerte', 7000, 7),
(59789012, 'Abderrazak Oueslati', '1997-01-05', 'Homme', 'Rue El Farabi, Monastir', 5000, 16),
(697890123, 'Hiba Gharbi', '1999-08-19', 'Femme', 'Rue de la République, Sfax', 3000, 18),
(79901234, 'Mahmoud Khalil', '1996-11-03', 'Homme', 'Avenue Tahar Sfar, Gabès', 6000, 19),
(89012345, 'Rania Saadoun', '2002-02-14', 'Femme', 'Rue Habib Bourguiba, Kairouan', 3001, 12),
(90123456, 'Firas Mnif', '1994-04-20', 'Homme', 'Rue de la Plage, Mahdia', 5100, 17),
(01234567, 'Imene Ouerdane', '1998-07-01', 'Femme', 'Rue Ibn Sina, Tunis', 2000, 1);
INSERT INTO apprenants (cin, prenomNom, dteNaiss, genre, adresse, cP, codeGouv) VALUES
(11111111, 'Ali Ahmed', '1999-01-01', 'Homme', '10 Rue de la Paix, Tunis', 1000, 1),
(22222222, 'Fatma Ben Ali', '2000-02-02', 'Femme', '20 Avenue Habib Bourguiba, Ariana', 2080, 2),
(33333333, 'Hassan Belhassen', '1998-03-03', 'Homme', '30 Rue des Roses, Ben Arous', 2013, 3),
(44444444, 'Nadia Dridi', '1997-04-04', 'Femme', '40 Rue des Palmiers, Manouba', 2010, 4),
(55555555, 'Ahmed Sassi', '1999-05-05', 'Homme', '50 Rue de la Liberté, Nabeul', 8000, 5),
(66666666, 'Salma Khemiri', '2000-06-06', 'Femme', '60 Avenue Farhat Hached, Zaghouan', 1100, 6),
(77777777, 'Wassim Chammakhi', '1998-07-07', 'Homme', '70 Rue du Port, Bizerte', 7000, 7),
(88888888, 'Sara Rezgui', '1997-08-08', 'Femme', '80 Avenue de la République, Béja', 9000, 8),
(99999999, 'Mohamed Hamdi', '1999-09-09', 'Homme', '90 Rue de la Victoire, Jendouba', 8100, 9),
(10101010, 'Amira Khelifi', '2000-10-10', 'Femme', '100 Avenue Habib Bourguiba, Kef', 7110, 10);
INSERT INTO groupes (cdeGroupe, intGroupe, dteEntreeGroupe, dteSortieGroupe) VALUES
('TMMSI 12', 'TMMSI 12', '2020-09-01', '2022-08-31'),
('TMMSI 13', 'TMMSI 13', '2020-11-02', '2022-10-31'),
('TMMSI 14', 'TMMSI 14', '2021-02-02', '2022-12-31'),
('TMMSI 15', 'TMMSI 15', '2021-04-02', '2023-03-31'),
('TMMSI 16', 'TMMSI 16', '2021-09-01', '2023-08-31'),
('TMMSI 17', 'TMMSI 17', '2021-11-02', '2023-10-31'),
('TMMSI 18', 'TMMSI 18', '2022-02-02', '2023-12-31'),
('TMMSI 19', 'TMMSI 19', '2022-04-02', '2024-03-31'),
('TMMSI 20', 'TMMSI 20', '2022-09-01', '2024-08-31'),
('TMMSI 21', 'TMMSI 21', '2022-11-02', '2024-10-31');
INSERT INTO inscriptions (cin, cdeGroupe, dteInscription) VALUES
(11111111, 'TMMSI 16', '2022-01-01'),
(22222222, 'TMMSI 16', '2022-02-02'),
(33333333, 'TMMSI 16', '2022-03-03'),
(44444444, 'TMMSI 16', '2022-04-04'),
(55555555, 'TMMSI 16', '2022-05-05'),
(66666666, 'TMMSI 16', '2022-06-06'),
(77777777, 'TMMSI 16', '2022-07-07'),
(88888888, 'TMMSI 16', '2022-08-08'),
(99999999, 'TMMSI 16', '2022-09-09'),
(10101010, 'TMMSI 16', '2022-10-10');
<?php
$host_name = "localhost";
$database = "gestion_apprenants";
$user_name = "root";
$password = "";
$connection = new mysqli($host_name, $user_name, $password, $database);
if($connection->connect_errno)
{
echo '<p>La connexion au serveur MySQL a échoué: '.$connection->connect_error().'</p>';
}
else
{
echo '<p>Connexion au serveur MySQL établie avec succès.</p>';
}
echo "Succès : Une connexion correcte à MySQL a été faite!
La base de donnée my_db est génial." . PHP_EOL;
echo "Information d'hôte : " . mysqli_get_host_info($connection) . PHP_EOL;
//mysqli_close($link);
?>
<?php
$host_name = "localhost";
$database = "gestion_apprenants";
$user_name = "root";
$password = "";
$connection = mysqli_connect($host_name, $user_name, $password, $database);
if(mysqli_connect_errno())
{
echo '<p>La connexion au serveur MySQL a échoué: '.mysqli_connect_error().'</p>';
}
else
{
echo '<p>Connexion au serveur MySQL établie avec succès.</p>';
}
$req="select * from apprenants";
$result = mysqli_query($connection,$req);
// Tableau à indice numérique
echo "<b>Tableau à indice numérique :</b> </br>";
while ($ligne = mysqli_fetch_array($result, MYSQLI_NUM))
{
echo $ligne[0]." ".$ligne[1].
" ".$ligne[2]." ".$ligne[3].
" ".$ligne[4]." ".$ligne[5]."</br>";
}
// tableau associatif
$result = mysqli_query($connection,$req);
echo "<b>Tableau associatif :</b> </br>";
while ($ligne = $result -> fetch_assoc())
{
echo $ligne['cin']." ".$ligne['nomPrenom'].
" ".$ligne['Genre']." ".$ligne['dtNaissance'].
" ".$ligne['cdeGouv']." ".$ligne['cdePostal']."</br>";
}
?>
<?php
include_once('header.php');
//Vérification de l'existence des cookies
?>
<?php
if (!empty($_POST)) {
if(isset($_POST['connexion_p'])) {
include('connexion_p.php');
}elseif (isset($_POST['connexion_oo']) ) {
include('connexion_oo.php');
}elseif (isset($_POST['affichage_assoc_p']) ) {
include('affichage_assoc_p.php');
}elseif (isset($_POST['affichage_assoc_oo']) ) {
include('affichage_assoc_oo.php');
} else {
// comment t'es venu sur cette page ?
}
}
?>
</br>
<div class="continer mt-4 mb-4" height="800px">
<form method="post">
<div class="row">
<div class="col lg-6 md-6 xs-6">
<button type="submit" class="btn btn-primary btn-lg btn-block"
name="connexion_p">
Connexion avec API mysqli style procédural</button>
</div>
<div class="col lg-6 md-6 xs-6">
<button type="submit" class="btn btn-secondary btn-lg btn-block"
name="connexion_oo">Connexion avec API mysqli style Orienté Objet</button>
</div>
</div>
<div class="row mt-4">
<div class="col lg-3 md-3 xs-3">
<button type="submit" class="btn btn-warning btn-lg btn-block"
name="affichage_assoc_p">
Affichage avec mysqli_fetch_assoc_P</button>
</div>
<div class="col lg-3 md-3 xs-3">
<button type="submit" class="btn btn-warning btn-lg btn-block"
name="affichage_assoc_oo">
Affichage avec mysqli_fetch_assoc_OO</button>
</div>
<div class="col lg-3 md-3 xs-3">
<button type="submit" class="btn btn-info btn-lg btn-block"
name="affichage_all_p">Affichage avec mysqli_fetch_all_p</button>
</div>
<div class="col lg-3 md-3 xs-3">
<button type="submit" class="btn btn-info btn-lg btn-block"
name="affichage_all_oo">Affichage avec mysqli_fetch_all_oo</button>
</div>
</div>
<div class="row mt-4">
<div class="col lg-6 md-6 xs-6">
<button type="submit" class="btn btn-primary btn-lg btn-block"
name="affichage_array_p">
Affichage avec mysqli_fetch_all_p</button>
</div>
<div class="col lg-6 md-6 xs-6">
<button type="submit" class="btn btn-secondary btn-lg btn-block"
name="affichage_array_p_oo">Affichage avec mysqli_fetch_all_oo</button>
</div>
</div>
</form>
</div>
</br></br></br></br></br></br></br></br></br>
<?php
require_once('footer.php');
?>