J'aimerais effacer des messages dans ma base de données. J'ai fait une boucle pour afficher la liste avec une case à cocher à côté de chaque message.
J'arrive à afficher la liste, mais je n'arrive pas à effacer. Voici mon script php :
Code : Tout sélectionner
<?php
/** ==================== Effacement ==================== */
// En cas d'envoi de formulaire :
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
$requete = $db->query('SELECT * FROM messages ORDER BY id DESC');
$result = $requete->fetchAll();
// Une boucle pour parcourir la liste de messages. On efface un message si une case est cochée
foreach ($result as $res)
{
if (isset($_POST['name']))
{
$id = $res['id'];
$query = $db->prepare('DELETE FROM messages WHERE id='.$id);
$query->bindValue(':id', $id, PDO::PARAM_INT);
$query->execute();
}
}
}
/** ==================== Affichage de liste de messages ==================== */
else
{
$requete2 = $db->query('SELECT * FROM messages ORDER BY id DESC');
$result2 = $requete2->fetchAll();
echo '<form method="post">';
// Une boucle pour afficher la liste de messages et une case à cocher à côté
foreach ($result2 as $res)
{
echo '<div class="flex">
<div class="flex-child">ID: '.$res['id'].'<input name="'.$res['id'].'" type="checkbox"></div>
<div class="flex-child">Pseudo: '.$res['username'].'</div>
<div class="flex-child">Message: '.$res['content'].'</div>
<div class="flex-child">Date: '.$res['created_at'].'</div>
<hr>
</div>';
}
echo '<div class="center">
<button type="submit">Effacer</button>
</div>
</form>';
}
?>