Supprimer les messages d'un chat dont la date est plus vieille q'une date dans une variable mois un intervalle de temps
Posté : 14 août 2019, 17:02
Bonjour, j'ai deux scripts, un formulaire et post pour remplir et delete dans la table des messages.
Je précise que je ne veux pas utiliser NOW() même si ça serait plus facile, je souhaite être capable d'utiliser une date en variable dans ma requête SQL.
Cordialement,
Joce
Je précise que je ne veux pas utiliser NOW() même si ça serait plus facile, je souhaite être capable d'utiliser une date en variable dans ma requête SQL.
Cordialement,
Joce
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
<title>Les Tortues aquatiques et leur habitat domestique</title>
</head>
<body>
<?php include("header.php"); ?>
<?php include("nav.php"); ?>
<div>
<h3>Le chat</h3>
Veuillez taper votre pseudo
<form action="minichat_post.php" method="post">
<p>
<input type="text" name="pseudo" />
<input type="text" name="message" />
<input type="submit" value="Valider" />
</p>
</form>
</div>
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
// Récupération des 10 derniers messages
$reponse = $bdd->query('SELECT pseudo, message,date FROM chat ORDER BY ID DESC LIMIT 0, 40');
// Affichage de chaque message (toutes les données sont protégées par htmlspecialchars)
while ($donnees = $reponse->fetch())
{
echo '<p><strong>' . htmlspecialchars($donnees['pseudo'])." à " . htmlspecialchars($donnees['date']) . '</strong> : ' . htmlspecialchars($donnees['message']) . '</p>';
}
$reponse->closeCursor();
?>
<footer id="pied_de_page">
<p><a href="mailto:[email protected]">contact</p>
</footer>
</body>
</html>
<?php
// Connexion à la base de données
try
{
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$date=date("Y-m-d H:i:s");
$sql=$bdd->prepare("DELETE FROM chat WHERE DATE_SUB(:date_current,INTERVAL 5 MIN)>date");
$sql->execute(array(
date_current=>$date
));
// Insertion du message à l'aide d'une requête préparée
$req = $bdd->prepare('INSERT INTO chat (pseudo, message,date) VALUES(?, ?, ?)');
$req->execute(array($_POST['pseudo'], $_POST['message'], $date));
// Redirection du visiteur vers la page du minichat
header('Location: chat.php');
?>