J'alimente une base de données à l'aide d'un formulaire dans une page PHP - Dans une seconde page PHP, je récupère l'ensemble des données dans un tableau à la fin duquel j'ai rajouté un bouton "SUPPRIMER".
J'aimerai que, lors de l'appui sur ce bouton, la ligne du tableau s'"efface tout comme la ligne de la base de données s'y rapportant.
Je vous joins le code actuel en espérant pouvoir trouver une solution avec votre aide.
Merci d'avance
1/ Page de saisie avec envoi dans la base de données - saisie.php
<?php
// AFFICHAGE DES ERREURS PHP
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
// SAISIE DES DONNEES
if(!empty($_POST['datum']) && !empty($_POST['numbers']) && !empty($_POST['synthesis']) && !empty($_POST['firstname']) && !empty($_POST['lastname'])) {
require('src/bddconnect.php'); // CONNEXION BDD
// ON STOCK LES DONNEES DANS DES VARIABLES
$date = ($_POST['datum']);
$numbers = ($_POST['numbers']);
$synthesis = ($_POST['synthesis']);
$firstname = ($_POST['firstname']);
$lastname = ($_POST['lastname']);
// TEST SI NUMERO DE PROCEDURE DEJA SAISI
// 1 - PREPARATION DES VARIABLES
$sql = 'SELECT COUNT(*) AS numProc FROM procedures WHERE numbers = ?';
$datas = array($numbers);
// 2 - REQUETE
try {
$requete = $bdd->prepare($sql);
$requete->execute($datas);
// 3 - TEST PRESENCE PROCEDURE
while ($consultation = $requete->fetch()) {
if ($consultation['numProc'] != 0) {
header('location: saisie.php?error=1&message=procédure déjà enregistrée'); // PROCEDURE DEJA ENREGISTREE
exit();
}
}
}
catch (Exception $e) {
echo " Erreur ! ".$e->getMessage();
echo " Les datas : " ;
print_r($datas);
}
// ENVOI DE LA REQUETE - ALIMENTATION DE LA BDD
// 1 - PREPARATION DES VARIABLES
$sql = 'INSERT INTO procedures(datum, numbers, synthesis, firstname, lastname)
VALUES(?, ?, ?, ?, ?)';
$datas = array($date, $numbers, $synthesis, $firstname, $lastname);
// 2 - REQUETE
try {
$requete = $bdd->prepare($sql);
$requete->execute($datas);
header('location: saisie.php?success=1');
exit();
}
catch (Exception $e) {
echo " Erreur ! ".$e->getMessage();
echo " Les datas : " ;
print_r($datas);
}
}
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="design/default.css">
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
<title>Saisie des données</title>
</head>
<body>
<header class="header_saisie">
<!-- Page d'accueil -->
<h1>PAGE DE SAISIE DES DONNEES</h1>
<!-- Logo Gendarmerie -->
<img class="logo_gie" src="images/logo-officiel-gendarmerie.jpg" alt="">
</header>
<!-- Barre de navigation -->
<?php
include "menu.php"
?>
<!-- Zone de saisie -->
<div class="saisie">
<!-- Page pour la saisie des données des procédures -->
<h3>CHAMPS DE SAISIE</h3>
<form action="saisie.php" method="POST">
<p>
<label>Date d'enregistrement : </label>
<input type="date" name="datum" required>
</p>
<p>
<label>Numéro de procédure : </label>
<input type="text" name="numbers" size="25" placeholder="Format 15321/00000/0000" required>
</p>
<p>
<label>Synthèse : </label>
<input type="text" name="synthesis" size="50" placeholder="Exposé simple de la mission" required>
</p>
<p>
<label>Nom : </label>
<input type="text" name="firstname" size="20" required>
</p>
<p>
<label>Prénom : </label>
<input type="text" name="lastname" size="20" required>
</p>
<p>
<button type="submit">Transmettre les données</button>
<button type="reset">Réinitialiser</button>
</p>
</form>
</div>
</body>
</html>
2/ Page récupération données de la BDD - encours.php
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="utf-8">
<link rel="stylesheet" type="text/css" href="design/default.css">
<link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">
<title>Procédures enregistrées</title>
</head>
<body>
<header>
<!-- Page d'accueil -->
<h1>PROCEDURES ENREGISTREES</h1>
</header>
<!-- Logo Gendarmerie -->
<img class="logo_gie" src="images/logo-officiel-gendarmerie.jpg" alt="">
<!-- Barre de navigation -->
<?php
include "menu.php"
?>
<div class="encours">
<h2>LISTE DES PROCEDURES EN COURS</h2>
<?php
require('src/bddconnect.php'); // Connexion à la base de données
// Lecture des données
$requete = $bdd->query('SELECT * FROM procedures');
echo'
<table border class="procedures">
<tr>
<th>Date</th>
<th>Numéro de procédure</th>
<th>Synthèse</th>
<th>Nom</th>
<th>Prénom</th>
<th>Suppression</th>
</tr>';
while($donnees = $requete->fetch()) {
echo '
<tr>
<td>'.$donnees['datum'].'</td>
<td>'.$donnees['numbers'].'</td>
<td>'.$donnees['synthesis'].'</td>
<td>'.$donnees['firstname'].'</td>
<td>'.$donnees['lastname'].'</td>
<td>
<form action="encours.php" method="POST">
<input type="hidden" type="submit" name="id" value="'.$donnees['id'].'">
<input type="submit" name="supprimer" value="Supprimer">
</form>
</td>
</tr>';
}
echo'
</table>';
?>
</div>
</body>
</html>
3/ Page pour la suppression des données de la BDD - supp.php
<?php
try {
$bdd = new PDO('mysql:host=localhost;dbname=cob_valence;charset=utf8', 'root', ''); // Connection à la Base de Données
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$bdd->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
}
catch (PDOException $e) {
die('Erreur : ' . $e->getMessage());
}
if(isset($_POST['supprimer'])){
$proc_del = $_POST['id'];
$bdd->query("DELETE FROM procedures WHERE id=" . $proc_del);
header('Location: encours.php');
}
?>
A voir également:
Soucis de Suppression ligne tableau + Ligne BDD en PHP