0% ont trouvé ce document utile (0 vote)
269 vues11 pages

DAI 2024 - Corrigé

Le document présente le corrigé de l'examen national du Brevet de Technicien Supérieur (BTS) pour la session 2024, axé sur le développement des applications informatiques. Il détaille les classes Java pour la gestion des personnes, enseignants, étudiants et départements, ainsi que les interactions avec une base de données via une application client-serveur. Des exemples de code et des explications sur la gestion des demandes de formation sont également fournis.

Transféré par

nouhi.mohamedamine2005
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

Thèmes abordés

  • Classe Personne,
  • Gestion des affichages,
  • Gestion des candidatures,
  • SQL,
  • Requêtes SQL,
  • Gestion des sessions,
  • BTS,
  • Gestion des formulaires,
  • Développement des Systèmes d’I…,
  • Gestion des connexions
0% ont trouvé ce document utile (0 vote)
269 vues11 pages

DAI 2024 - Corrigé

Le document présente le corrigé de l'examen national du Brevet de Technicien Supérieur (BTS) pour la session 2024, axé sur le développement des applications informatiques. Il détaille les classes Java pour la gestion des personnes, enseignants, étudiants et départements, ainsi que les interactions avec une base de données via une application client-serveur. Des exemples de code et des explications sur la gestion des demandes de formation sont également fournis.

Transféré par

nouhi.mohamedamine2005
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

Thèmes abordés

  • Classe Personne,
  • Gestion des affichages,
  • Gestion des candidatures,
  • SQL,
  • Requêtes SQL,
  • Gestion des sessions,
  • BTS,
  • Gestion des formulaires,
  • Développement des Systèmes d’I…,
  • Gestion des connexions

Examen National du Brevet de Technicien Supérieur (BTS) Page

Session 2024
1
- Corrigé - RP74
Centre National de l'Évaluation et des Examens 11

Filière : Développement des Systèmes d’Information - DSI - Durée : 4 heures


Épreuve : Développement des applications informatiques Coefficient : 45

ÉTUDE DE CAS : SOCIÉTÉ DE FORMATION ET RECHERCHE AGRONOMIQUE

DOSSIER I : GESTION DES DÉPARTEMENTS (14 points)

1. Le détail de la classe « Personne » est le suivant :


public abstract class Personne implements Serializable {
private String num;
private String nom;
a) public Personne(String num , String nom) { (0,5 pt)
[Link]=num;[Link]=nom; }
@Override
b) public String toString() { (0,5 pt)
return "Numéro:"+num+", Nom:"+nom; }
@Override
c) public boolean equals(Object Ob) { (0,5 pt)
Personne p=(Personne)ob;
Cast : (0,25 pt)
return [Link]([Link]); }
Comparaison : (0,25 pt)
ou
public boolean equals(Object Ob) {
if(Ob == null) return false;
if(this == ob) return true;
if(ob instanceof Personne == false) return false;
Personne p=(Personne)ob;
return [Link]([Link]); }
public abstract double calculer();
}

2. Le détail de la classe « Enseignant » est le suivant :


public class Enseignant extends Personne{
private int indice;
private Date dateAff;
a) public Enseignant(String num , String nom , int ind , Date dtAff) throws ErreurIndice
{ super(num, nom); (1 pt)
if(indice<200 || indice > 1000) throw new ErreurIndice("Err d’indice");
indice= ind;
dateAff = dtAff; test : (0,25 pt)
} affectation : (0,75 pt)

public int getIndice() { ... }


public Date getDateAff() { ... }
@Override
b) public String toString() { (1 pt)
SimpleDateFormat f= new SimpleDateFormat("dd/MM/yyyy"); Sans format date : (0,75 pt)
return [Link]() +",Indice:"+indice+",Date Avec format date : (1 pt)
d’affectation:"+[Link](dateAff); }
@Override
c) public double calculer() { (1,5 pt)
double salaire = indice*25 ;
Calcul : (1 pt)
salaire = salaire - salaire*0.38 ; return salaire ; }
Return : (0.5 pt)
}
public class ErreurIndice extends Exception {
public ErreurIndice(String m) { super(m) ; } Bonus
}
Corrigé de l’Examen National du Brevet de Technicien Supérieur (BTS) - Session 2024 RP74 Page
2
Filière : DSI Épreuve : Développement des applications informatiques
11

3. Classe « Etudiant » est le suivant :


public class Etudiant extends Personne{
private int niveau;
private Date dateIns;
a) public Etudiant(String num, String nom, int niv, Date ins) (1 pt)
throws ErreurNiveau {
super(num, nom);
if(niv != 1 && niv != 2 && niv != 3) throw new ErreurNiveau("Err Niv");
niveau = niv; Avec super : (1 pt)
dateIns = ins; } Sans supper : (0.75 pt)
@Override
b) public String toString() { (0,5 pt)
SimpleDateFormat f= new SimpleDateFormat("dd/MM/yyyy"); Avec super : (0,5 pt)
return [Link]() +",Niveau :"+niveau+",Date
Sans supper : (0.25 pt)
d’inscrition"+[Link](dateIns); }
c) @Override
public double calculer() { (1 pt)
double bourse = 1000+niveau*150 ; Calcul : (0,75 pt)
return bourse ; } Return : (0,25 pt)
}

4. Classe « Departement » :
public class Departement {
private String nomDep;
private ArrayList<Enseignant> listeEns;

a) public Departement(String nomDep) { (1 pt)


[Link]=nomDep ; listeEns=new ArrayList() ; } (0,5 pt) + (0,5 pt)
public ArrayList<Enseignant> getListeEnseignants() { ... } non demandé
b) public int existe (Enseignant ens) { (1 pt)
return [Link](ens) ; }
c) public boolean ajout(Enseignant ens) { Avec vérification : (1,5 pt) (1,5 pt)
if([Link](ens)) return false ; Sans vérification : (1 pt)
return [Link](ens) ; }
d) public boolean supprimerEnseignant(Enseignant ens) { (1 pt)
return [Link](ens) ; }
@Override
e) public String toString() { (2 pt)
String msg ="Nom Département :"+nomDep+"\nListe des enseignanats:\n" ;
for(Enseignant e :listeEns) msg+= [Link]()+"\n" ;
return msg ; } Message entête : (0,5 pt)
ou La boucle : (1,5 pt)
public String toString() { StringBuilder msg;
msg=new StringBuilder("Nom Département :"+nomDep+"\nListe des
enseignanats:\n");
for(Enseignant e :listeEns) [Link]([Link]()+"\n");
return [Link]() ; }
}
Corrigé de l’Examen National du Brevet de Technicien Supérieur (BTS) - Session 2024 RP74 Page
3
Filière : DSI Épreuve : Développement des applications informatiques
11

DOSSIER II : GESTION DES ENSEIGNANTS (8 points)

➢ SERVEUR D’APPLICATION
import [Link].*;
public class Connexion {
private String URL,User, Password ;
private Connection cn;
public Connexion(String URL, String User, String Password) {
[Link]=URL;
[Link]=User;
[Link]=Password;
}
1. public boolean connecter() (1,5 pt)
{ try{
cn=[Link](URL,User,Password);
return true; }
catch(Exception ex) {return false;} Sans retour : (1 pt)
} Avec retour : (1,5 pt)
ou
public boolean connecter()
{ try{
Properties p=new Properties();
[Link]("user",User);
[Link]("password",Password);
cn=[Link](URL,p);
return true; }
catch(Exception ex) {return false;}
}
2. public ResultSet lireEnseigants(int indice) (1,5 pt)
{ try{
Statement st=[Link]();
String sql="select * from enseignant where indice="+indice;
return [Link](sql); }
Req : (0,5 pt)
catch(Exception ex) {return null;}
retour : (1 pt)
}

3. public boolean ajoutEnseignant(Enseignant ens) (1,5 pt)


{ try{ Req : (0,5 pt)
Statement st=[Link]();
Envoi : (0,5 pt)
String sql="insert into enseignant
retour : (0,5 pt)
values([Link](),[Link](),[Link](),[Link]());
[Link](sql); return true; }
catch(Exception ex) {return false;}
}

4. public boolean fermer() (0,5 pt)


{ try{
[Link](); Fermeture : (0,25 pt)
return true; } retour : (0,25 pt)
catch(Exception ex) {return false;}
}
}
Corrigé de l’Examen National du Brevet de Technicien Supérieur (BTS) - Session 2024 RP74 Page
4
Filière : DSI Épreuve : Développement des applications informatiques
11

➢ APPLICATION CLIENT
public class Client {
private String IP;
private int Port;
private Socket s=null;
private PrintWriter out=null;
private ObjectInputStream in=null;

public Client(String IP, int Port) {


[Link]=IP;
[Link]=Port;
}
1. public boolean setConnexion() (1,5 pt)
{ try {
s = new Socket(IP,Port) ; Socket : (0,5 pt)
out=new PrintWriter([Link]()) ; In, out : (0,5 pt)
in=new ObjectInputStream([Link]()) ; retour : (0,5 pt)
return true ;
}catch(Exception ex)
{return false ;} }
2. public ArrayList<Enseignant> demandeListeEnseignants(int indice) (1,5 pt)
{ try {
[Link](indice) ; Envoi : (0,5 pt)
return (ArrayList<Enseignant>)[Link]() ; Lecture : (0,5 pt)
}catch(Exception ex) retour : (0,5 pt)
{return null ;}
}
public static void main(String[] args){ ... } // code non demandé
}
Corrigé de l’Examen National du Brevet de Technicien Supérieur (BTS) - Session 2024 RP74 Page
5
Filière : DSI Épreuve : Développement des applications informatiques
11

DOSSIER III : GESTION DES DEMANDES DE FORMATIONS (10 points)


1. Dans un module (0,5 pt + 1,5 pt)
Imports [Link]
Module Module1
Public cnx As New SqlConnection("server=DESKTOP-C3CDK5E;initial catalog=BD_Formations
;integrated security=true")
Déclaration : (0,5 pt)
public Sub connexion()
Chaine : (0,25 pt)
Try New : (0,5 pt)
[Link]() Open : (0,5 pt)
Catch ex As Exception Notification : (0,25 pt)
[Link]([Link])
End Try
End Sub
End Module

2. Dans l’IHM d’enregistrement de nouvelles demandes :


a) (1,5 pt)
Mode connecté
Private Function Generer_NumDem() As Integer Req : (0,5 pt)
Dim sql As String = "select max(num_demande) from demande" Envoi : (0,5 pt)
Dim cmd As New SqlCommand(sql, cnx) Retour : (0,5 pt)
Dim numg As Integer = 0
If not isDBNull([Link]()) then numg= [Link]()
Return numg + 1
End Function
Mode non connecté
Private Function Generer_NumDem() As Integer
Dim sql As String = "select max(num_demande) from demande"
Dim ds As New DataSet
Dim adaptdem As New SqlDataAdapter(sql, cnx)
[Link](ds, "maxdemande")
Dim numg As Integer=0
if [Link]("maxdemande").Rows isNothing = false then
numg = [Link]("maxdemande").Rows(0)(0)
End if
Return numg + 1
End Function
b) (1,5 pt)
Mode connecté
Private Sub Remplir_Candidats()
Dim sql As String = "select * from candidat"
Dim cmd As New SqlCommand(sql, cnx)
Req : (0,5 pt)
Dim dr As SqlDataReader = [Link]() Envoi : (0,5 pt)
Dim dt As New DataTable Propriétés : (0,5 pt)
[Link](dr)
[Link]()
[Link] = "nom"
[Link] = "matricule"
[Link] = dt
End Sub
Corrigé de l’Examen National du Brevet de Technicien Supérieur (BTS) - Session 2024 RP74 Page
6
Filière : DSI Épreuve : Développement des applications informatiques
11

Mode non connecté


Private Sub Remplir_Candidats()
Dim sql As String = "select * from candidat"
Dim ds As New DataSet
Dim adaptcandidat As New SqlDataAdapter(sql, cnx)
[Link](ds, "candidat")
[Link] = "nom"
[Link] = "matricule"
[Link] = [Link]("candidat")
End Sub
c) Procédure «Enregistrer_Demande» (2 pts)
Mode connecté
Private Sub Enregistrer_Demande(ByVal mat As Integer, ByVal idCours As Integer, ByVal remarque As String)
Dim req As String = "insert into demande (num_demande,date_demande,matricule,id_cours,remarque) values (" &
Generer_NumDem() & ",'" & [Link] & "'," & mat & "," & idCours & ",'" & remarque & "')"
' ou encore
Dim req As String = "insert into demande values (" & Generer_NumDem() & ",'" & [Link] & "'," & mat & "," &
idCours & ",'en_cours','" & remarque & "')"
Dim cmd As New SqlCommand(req, cnx) Req : (1,5 pt)
[Link]() Envoi : (0,5 pt)
End Sub
Mode non connecté
Private Sub Enregistrer_Demande(ByVal mat As Integer, ByVal idCours As Integer, ByVal remarque As String)
Dim ds As New DataSet
Dim sql As String = "select * from demande"
Dim adaptdem As New SqlDataAdapter(sql, cnx)
[Link](ds, "demande")
Dim ligne As DataRow = [Link]("demande").NewRow
ligne(0) = Generer_NumDem()
ligne(1) = [Link]
ligne(2) = mat
ligne(3) = idCours
ligne(5) = remarque
[Link]("demande").[Link](ligne)
Dim cb As SqlCommandBuilder
cb = New SqlCommandBuilder(adaptdem)
[Link](ds, "demande")
End Sub
3. Dans l’IHM de validation des demandes, créer les méthodes suivantes :
a. Procédure « AfficherDemandes» : (1,5 pt)

Numéro Date Demande Nom Complet Titre Etat Demande


Mode connecté
Private Sub AfficherDemandes(ByVal titreCours As String)
Dim sql As String = "select num_demande,date_demande,(nom + ' ' +prenom) as [Nom Complet],titre,
etat_demande from candidat C,cours CS,demande D where [Link] = [Link] And D.id_cours =
CS.id_cours and etat_demande in ('en cours', 'en attente') and titre like '" & titreCours & "%'"
Dim cmd As New SqlCommand(sql, cnx)
Dim dr As SqlDataReader = [Link]() Req : (1 pt)
Dim dt As New DataTable Envoi : (0,25 pt)
[Link](dr) Affichage : (0,25 pt)
[Link] = dt
End Sub
Corrigé de l’Examen National du Brevet de Technicien Supérieur (BTS) - Session 2024 RP74 Page
7
Filière : DSI Épreuve : Développement des applications informatiques
11

Mode non connecté


Private Sub AfficherDemandes(ByVal titreCours As String)
Dim ds As New DataSet
Dim sql As String = "select num_demande,date_demande,(nom + ' ' +prenom) as [Nom Complet],
titre,etat_demande from candidat C,cours CS,demande D where [Link] = [Link]
And D.id_cours = CS.id_cours"
Dim adaptlistdem As New SqlDataAdapter(sql, cnx)
[Link](ds, "listDem")
Dim dv As New DataView
[Link] = [Link]("listDem")
[Link] = "etat_demande in ('en cours', 'en attente') and titre like '" & titreCours & "%'"
[Link] = dv
End Sub

b. Procédure « Modif_EtatDemande» : (1,5 pt)


Mode connecté
Private Sub Modif_EtatDemande(ByVal numDem As Integer, ByVal newEtat As String)
Dim sql As String = "update demande set etat_demande='" & newEtat & "' where num_demande=" & numDem
Dim cmd As New SqlCommand(sql, cnx)
Req : (1 pt)
[Link]() Envoi : (0,5 pt)
End Sub
Mode non connecté
Private Sub Modif_EtatDemande(ByVal numDem As Integer, ByVal newEtat As String)
Dim ds As New DataSet
Dim sql As String = "select * from demande"
Dim adaptdem As New SqlDataAdapter(sql, cnx)
[Link](ds, "demande")
Dim ligne As DataRow
[Link]("demande").PrimaryKey = New DataColumn(){[Link]("demande").Columns("num_demande")}
ligne = [Link]("demande").[Link](numDem)
If ligne Is Nothing Then
' Aucun enregistrement à modifier
Exit Sub
End If
ligne(4) = newEtat
Dim cb As New SqlCommandBuilder(adaptdem)
[Link](ds, "demande")
End Sub
Corrigé de l’Examen National du Brevet de Technicien Supérieur (BTS) - Session 2024 RP74 Page
8
Filière : DSI Épreuve : Développement des applications informatiques
11

DOSSIER IV : GESTION DES STAGES (8 points)


1. Fichier « [Link] »,: (1,5 pt)

Orienté Objet : MySQLI


<?php
// Informations de connexion à la base de données Paramètres : (0,5 pt)
$serveur = "serveurHost"; $utilisateur = "user1"; commande : (1 pt)
$motDePasse = "user1@1234"; $baseDeDonnees = "Gestion_stages";
// Création de la connexion à la base de données
$connexion = new mysqli($serveur, $utilisateur, $motDePasse, $baseDeDonnees);
if ($connexion->connect_error) { // Vérification de la connexion
die("La connexion à la base de données a échoué : " . $connexion->connect_error);}
?>
Orienté Objet : PDO
<?php
// Informations de connexion à la base de données
$serveur = "serveurHost"; $utilisateur = "user1";
$motDePasse = "user1@1234"; $baseDeDonnees = "Gestion_stages";
try {
// Création de la connexion à la base de données PDO
$connexion = new PDO("mysql:host=$serveur;dbname=$baseDeDonnees", $utilisateur, $motDePasse);
$connexion->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("La connexion à la base de données a échoué : " . $e->getMessage());
}
?>
Procédurale :
<?php
// Informations de connexion à la base de données
$serveur = "serveurHost"; $utilisateur = "user1";
$motDePasse = "user1@1234"; $baseDeDonnees = "Gestion_stages";
// Tentative de connexion à la base de données
$connexion = mysqli_connect($serveur, $utilisateur, $motDePasse, $baseDeDonnees);
if (!$connexion) { // Vérification de la connexion
die("La connexion à la base de données a échoué : " . mysqli_connect_error());
}
?>
2. (1,5 pt)
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") {
if (isset($_POST['choix'])) { // Vérification du choix sélectionné
$choix = $_POST['choix'];
if ($choix == 'a') { // Redirection en fonction du choix Pondération par nombres
header("location: [Link]"); de tests
} elseif ($choix === 'b') {
header("location: [Link]");
} elseif ($choix == 'c') {
header("location: [Link]");
} elseif ($choix === 'd') {
header("location: [Link]");
} else {
// Redirection par défaut si le choix n'est pas reconnu
header("location: [Link]");
}
}
} else { // Redirection si la requête n'est pas de type POST
header("location: [Link]");
} ?>
Corrigé de l’Examen National du Brevet de Technicien Supérieur (BTS) - Session 2024 RP74 Page
9
Filière : DSI Épreuve : Développement des applications informatiques
11

3. Page nommée « [Link] » est affichée comme suit : (2 pts)


Le code de cette page est le suivant : Fichier « [Link] » :
Orienté Objet : MySQLI
< ?php
// Requête SQL pour récupérer les informations
$requete = "SELECT [Link], [Link], [Link], CONCAT([Link], ' ', [Link]) AS
NomComplet FROM stage INNER JOIN inscription ON [Link] = [Link]
INNER JOIN stagiaire ON [Link] = [Link]";
$resultat = $connexion->query($requete); // Exécution de la requête
if ($resultat->num_rows > 0) {
while ($row = $resultat->fetch_assoc()) {
echo "<tr>
<td>" . $row['NumStage'] . "</td> Req : (1 pt)
<td>" . $row['DateDebut'] . "</td> Envoi : (0,5 pt)
<td>" . $row['Duree'] . "</td> Boucle d’affichage : (0,5 pt)
<td>" . $row['NomComplet'] . "</td>
</tr>";
}
}
?>
PDO
<?php
// Requête SQL pour récupérer les informations
$requete = "SELECT [Link], [Link], [Link], CONCAT([Link], ' ', [Link]) AS
NomComplet FROM stage INNER JOIN inscription ON [Link] = [Link]
INNER JOIN stagiaire ON [Link] = [Link]";
$resultat = $connexion->query($requete); // Exécution de la requête
// Vérification du nombre de lignes
if ($resultat->rowCount() > 0) {
// Parcours des résultats
while ($row = $resultat->fetch(PDO::FETCH_ASSOC)) {
echo "<tr>
<td>" . $row['NumStage'] . "</td>
<td>" . $row['DateDebut'] . "</td>
<td>" . $row['Duree'] . "</td>
<td>" . $row['NomComplet'] . "</td>
</tr>";
}
}
?>
Procédurale :
<?php
// Requête SQL pour récupérer les informations
$requete = "SELECT [Link], [Link], [Link], CONCAT([Link], ' ', [Link]) AS NomComplet
FROM stage INNER JOIN inscription ON [Link] = [Link]
INNER JOIN stagiaire ON [Link] = [Link]";
$resultat = mysqli_query($connexion, $requete); // Exécution de la requête
if (mysqli_num_rows($resultat) > 0) { // Vérification du nombre de lignes
// Parcours des résultats
while ($row = mysqli_fetch_assoc($resultat)) {
echo "<tr>
<td>" . $row['NumStage'] . "</td>
<td>" . $row['DateDebut'] . "</td>
<td>" . $row['Duree'] . "</td>
<td>" . $row['NomComplet'] . "</td>
</tr>";
}
}
?>
Corrigé de l’Examen National du Brevet de Technicien Supérieur (BTS) - Session 2024 RP74 Page
10
Filière : DSI Épreuve : Développement des applications informatiques
11

4. Fichier « [Link] » : (3 pts)


Orienté Objet : MySQLI
< ?php
// Traitement du formulaire d'inscription au stage
if ($_SERVER["REQUEST_METHOD"] === "POST") { (1 pt) Par insertion
$nom = $_POST['nom']; $prenom = $_POST['prenom'];
$dateDebut = $_POST['dateDebut']; $duree = $_POST['duree'];
// Insertion du stagiaire dans la table 'stagiaire'
$requeteStagiaire = "INSERT INTO stagiaire (nom, prenom) VALUES ('$nom', '$prenom')";
$resultatStagiaire = $connexion->query($requeteStagiaire);
if ($resultatStagiaire) {
$idStagiaire = $connexion->insert_id; // Récupération de l'identifiant du stagiaire inséré
// Insertion du stage dans la table 'stage'
$requeteStage = "INSERT INTO stage (DateDebut, Duree) VALUES ('$dateDebut', '$duree')";
$resultatStage = $connexion->query($requeteStage);
if ($resultatStage) {
$idStage = $connexion->insert_id; // Récupération de l'identifiant du stage inséré
// Récupération de la date actuelle pour l'inscription
$dateInscription = date("Y-m-d");
// Insertion de l'inscription dans la table 'inscription'
$requeteInscription = "INSERT INTO inscription (NumStage, NumStagiaire, DateIns)
VALUES ('$idStage', '$idStagiaire', '$dateInscription')";
$resultatInscription = $connexion->query($requeteInscription);
if ( !$resultatInscription) {
echo "Inscription au stage réussie!";
} else {
echo "Erreur lors de l'inscription au stage : " . $connexion->error;
}
} else {
echo "Erreur lors de l'insertion du stage : " . $connexion->error;
}
} else {
echo "Erreur lors de l'insertion du stagiaire : " . $connexion->error;
}
}
?>
Orienté Objet : PDO
<?php
// Traitement du formulaire d'inscription au stage
if ($_SERVER["REQUEST_METHOD"] === "POST") {
try {
$nom = $_POST['nom']; $prenom = $_POST['prenom'];
$dateDebut = $_POST['dateDebut']; $duree = $_POST['duree'];
// Insertion du stagiaire dans la table 'stagiaire'
$requeteStagiaire = "INSERT INTO stagiaire (nom, prenom) VALUES ('$nom', '$prenom')";
$resultatStagiaire = $connexion->exec($requeteStagiaire);
if ($resultatStagiaire > 0) {
// Récupération de l'identifiant du stagiaire inséré
$idStagiaire = $connexion->lastInsertId();
// Insertion du stage dans la table 'stage'
$requeteStage = "INSERT INTO stage (DateDebut, Duree) VALUES ('$dateDebut', '$duree')";
$resultatStage = $connexion->exec($requeteStage);
if ($resultatStage > 0) {
// Récupération de l'identifiant du stage inséré
$idStage = $connexion->lastInsertId();
// Récupération de la date actuelle pour l'inscription
$dateInscription = date("Y-m-d");
// Insertion de l'inscription dans la table 'inscription'
$requeteInscription = "INSERT INTO inscription (NumStage, NumStagiaire, DateIns) VALUES ('$idStage', '$idStagiaire',
'$dateInscription')";
Corrigé de l’Examen National du Brevet de Technicien Supérieur (BTS) - Session 2024 RP74 Page
11
Filière : DSI Épreuve : Développement des applications informatiques
11

$resultatInscription = $connexion->exec($requeteInscription);
if ($resultatInscription > 0) {
echo "Inscription au stage réussie!";
} else {
echo "Erreur lors de l'inscription dans la table 'inscription'.";
}
} else {
echo "Erreur lors de l'insertion dans la table 'stage'.";
}
} else {
echo "Erreur lors de l'insertion dans la table 'stagiaire'.";
}
} catch (PDOException $e) {
echo "Erreur lors de l'inscription au stage : " . $e->getMessage();
}
}
?>

Procédurale :
<?php
if ($_SERVER["REQUEST_METHOD"] === "POST") { // Traitement du formulaire d'inscription au stage
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$dateDebut = $_POST['dateDebut'];
$duree = $_POST['duree'];
// Insertion du stagiaire dans la table 'stagiaire'
$requeteStagiaire = "INSERT INTO stagiaire (nom, prenom) VALUES ('$nom', '$prenom')";
$resultatStagiaire = mysqli_query($connexion, $requeteStagiaire);
if ($resultatStagiaire) {
// Récupération de l'identifiant du stagiaire inséré
$idStagiaire = mysqli_insert_id($connexion);
// Insertion du stage dans la table 'stage'
$requeteStage = "INSERT INTO stage (DateDebut, Duree) VALUES ('$dateDebut', '$duree')";
$resultatStage = mysqli_query($connexion, $requeteStage);
if ($resultatStage) {
// Récupération de l'identifiant du stage inséré
$idStage = mysqli_insert_id($connexion);
// Récupération de la date actuelle pour l'inscription
$dateInscription = date("Y-m-d");
// Insertion de l'inscription dans la table 'inscription'
$requeteInscription = "INSERT INTO inscription (NumStage, NumStagiaire, DateIns)
VALUES ('$idStage', '$idStagiaire', '$dateInscription')" ;
$resultatInscription = mysqli_query($connexion, $requeteInscription);
if ($resultatInscription) {
echo "Inscription au stage réussie!";
} else {
echo "Erreur lors de l'inscription dans la table 'inscription' : " . mysqli_error($connexion);
}
} else {
echo "Erreur lors de l'insertion dans la table 'stage' : " . mysqli_error($connexion);
}
} else {
echo "Erreur lors de l'insertion dans la table 'stagiaire' : " . mysqli_error($connexion);
}
}
?>

Vous aimerez peut-être aussi