par
moogli » 27 juil. 2018, 23:54
salut,
a priori le code supprime la dernière ligne retournée par la requête : SELECT id FROM entree_personnel
<?php
$suppress = $bdd->query('SELECT id FROM entree_personnel');
while ($donnees = $suppress->fetch()){
$recupId = $donnees['id'];
}
ce code ne fait que récupérer le dernier id de la table entree_personnel.
Vu qu'il n'y a pas de where (predicat) tu ne peux pas prévoir le résultat et surtout il y a de grande chance que ce ne soit pas le même id.
Ensuite vient la seconde partie du code
<?php
echo '<div>
<form method="post" action="">
<button type="submit"><img src="../image/poubelle-humain.jpg" alt="Avatar" width="150" height="150"></button>
<input type="hidden" name="supprime" value="'.$recupId.'">
</form>
</div>';
// Si le formulaire est soumis
if(isset($_POST['supprime'])){
$supp = $bdd -> prepare('DELETE FROM entree_personnel WHERE id = "'.$recupId.'" ');
$supp -> execute();
echo 'L\'ID n° :' .$recupId. 'est supprimé';
}
// Termine le traitement de la requête
$suppress->closeCursor();
la tu affiches un formulaire qui passe $recupId, dont on ne prévoir le résultat, vers la page cible (ici la même).
ensuite tu fais un delete SQL de la ligne qui correspond à $recupId (on ne sait toujours pas ce qu'il y a la dedans).
Dernière chose le code n'est exécuté que si le tableau $_POST contient l'index postId, le formulaire de suppression ne comprend pas de champ postId doc quand on tu cliques sur le bouton tu ne passes pas dans le if, aucun risque qu'il y ai une suppression.
quelque chose comme ceci devrait mieux aller
<?php
//On récupère l'ID de ma page "principal.php" //
if (isset($_POST['postId'])) {
echo 'l\'ID à effacer est bien : '.$_POST['postId'].'<br \>';
echo 'Sinon retournez à cette page :<a href="../page/principal.php">Principal</a> ';
echo '<div>
<form method="post" action="">
<button type="submit"><img src="../image/poubelle-humain.jpg" alt="Avatar" width="150" height="150"></button>
<input type="hidden" name="supprime" value="'.$$_POST['postId'].'">
</form>
</div>';
}
// Si le formulaire est soumis
if (isset($_POST['supprime'])) {
//On se connecte à la Bdd
include '../inc_/connexion_inc.php';
try {
$supp = $bdd->prepare('DELETE FROM entree_personnel WHERE id = "'.$_POST['supprime'].'" ');
$supp->execute();
echo 'L\'ID n° :'.$_POST['supprime'].'est supprimé';
} catch (\Exception $e) {
echo 'Erreur à la suppresion de l\'ID :',$_POST['supprime'];
}
}
@+