Comment insérer des données dans 2 (deux) tables simultanément ayants des clé etrangères?

Par défaut

Bonjour, aujourd’hui je fais ce Tuto grâce à une demande faite par: Charlo****** De****

Comment insérer des données dans 2 (deux) tables simultanément ayants une clé étrangère en PHP et MySQL ?

Supposons que nous avons ces deux tables suivantes:

  • Table Eleves: garde les informations relatives aux élèves
  • Table Inscription: défini la classe dans laquelle un élève appartient, sa scolarité et dans une année scolaire précise.

Vu que la clé primaire de la table ELEVES est étrangère dans la table INSCRIPTION, nous voulons insérer les données de l’élève une seule fois dans ces deux tables.

VOILA COMMENT LE FAIRE EN PHP et MySQL

1- Methode de connexion à ma base de donnée MySQL est MySQLi

define("HOST", "localhost"); // Adresse du Serveur MySQL
define("USER", "root");    // Nom d'utilisateur dela DB. 
define("PASSWORD", "");    // Mot de passe de la DB
define("DATABASE", "ecole"); // Nom de la DB
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
// TEST DE CONNEXION 1
if($mysqli->connect_errno > 0){
    die('IMPOSSIBLE DE SE CONNECTER AU SERVEUR' .$mysqli->connect_error);
}
Connexion à la Base de données MySQL

2- Données provenant de votre formulaire en mode POST

$nom = filter_input(INPUT_POST,'nom',FILTER_SANITIZE_STRING);
$prenom = filter_input(INPUT_POST,'prenoms',FILTER_SANITIZE_STRING);
$sexe = filter_input(INPUT_POST,'sexe',FILTER_SANITIZE_STRING);
$classe = filter_input(INPUT_POST,'classe',FILTER_SANITIZE_NUMBER_INT);
$scolarite = filter_input(INPUT_POST,'scolarite',FILTER_SANITIZE_NUMBER_INT);
$idann_sco = filter_input(INPUT_POST,'idann_sco',FILTER_SANITIZE_NUMBER_INT);
Donnée venant de votre formulaire en POST

3- Insertion de données dans les tables.

// insertion dans table eleves
$sql = $mysqli->prepare("INSERT INTO eleves (nom,prenom,sexe) VALUES (?,?,?)") or die(mysqli_error($mysqli));
$sql->bind_param('sss',$nom,$prenom,$sexe);
if($sql->execute()){
	// recuperation du dernier IDELEVE inséreé dans la table eleves
	$ideleves = $sql->insert_id;
	// Insertion dans la table inscription
	$int = $mysqli->prepare("INSERT INTO inscription (ideleves,classe,scolarite,ann_sco) VALUES (?,?,?,?)") or die(mysqli_error($mysqli));
	$int->bind_param('iiii',$ideleves,$classe,$scolarite,$idann_sco);
	if($int->execute()){
		echo 'VOS DONNEES ONT BIEN ETE AJOUTEES DANS LSE DEUX TABLES';	
	}else{
		die('Impossible d\'insérer les donnée dans la deuxième table (inscription). '.mysqli_error($mysqli));
	}
}else{
	die('Impossible d\'insérer dans la table premiere table: Eleves '.mysqli_error($mysqli));	
}
Insertion de données dans les deux tables.

N’hésitez pas à poster vos commentaires et suggestions au besoin.

Laisser un commentaire