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');
?>