Soucis de Suppression ligne tableau + Ligne BDD en PHP

Résolu/Fermé
Izzara82 Messages postés 26 Date d'inscription dimanche 14 mars 2021 Statut Membre Dernière intervention 11 janvier 2023 - Modifié le 24 févr. 2022 à 21:00
Izzara82 Messages postés 26 Date d'inscription dimanche 14 mars 2021 Statut Membre Dernière intervention 11 janvier 2023 - 25 févr. 2022 à 23:40
Bonsoir à tous et toutes,

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:

2 réponses

jordane45 Messages postés 38317 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 novembre 2024 4 705
25 févr. 2022 à 23:12
Bonjour,

Si le script de suppression se trouve dans le fichier : supp.php

Alors, le "action" de ton form n'est pas bon
 <form action="encours.php" method="POST">   

1
Izzara82 Messages postés 26 Date d'inscription dimanche 14 mars 2021 Statut Membre Dernière intervention 11 janvier 2023 1
25 févr. 2022 à 23:40
Quel âne je suis.....

Merci beaucoup. Fonctionne parfaitement désormais.
0