- Application 01
Énoncé
- Vous pouvez visualiser l'énoncé de l'exercice
Solution
Script de création des tables de la base
-- 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) );Script de remplissage du table
gouvernoratsINSERT 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');Script de remplissage du table
apprenantsINSERT 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);Script de remplissage du table
groupesINSERT 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');Script de remplissage du table
groupesINSERT 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');Page: connection_oo.php
<?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); ?>
Page: connection_p.php
<?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>"; } ?>Page: index.php
<?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 w-100" 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 w-100" 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 w-100" 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 w-100" 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 w-100" 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 w-100" 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 w-100" 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 w-100" 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'); ?>
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