Bonjour à tous,

j'ai rencontré un problème bizarre auquel j'ai du mal à trouver une explication :

dans une base de données, j'ai des données et notamment un champs timestamp, dans mon script j'utilise une requête SQL pour les récupérer puis je les traite à l'aide d'une boucle while (mysql_fetch_array ) . Dans cette boucle j'affiche les données 1 à 1 PUIS je les supprime si leur timestamp est inférieur au timestamp actuel (ie plus ancien).
En un mot comme en 100 cela donne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$requete = "SELECT timestamp FROM base";
$res = mysql_query($requete);
 
while($donnees = mysql_fetch_array($res))
{
$timestamp_actuel = time();
echo $donnees["timestamp"]."\n";
 
if($donnees["timestamp"] < $timestamp_actuel)
 {
 mysql_query("DELETE FROM base WHERE timestamp='".$donnees["timestamp"]."'");
 echo "bien supprimé\n";
 }
}
Et là seulement les données dont le timestamp est supérieur au timestamp actuel s'affichent . Pourquoi les données avec un timestamp plus ancien ne s'affichent-elles pas alors que je ne les supprime seulement qu'après les avoir affichées?