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 :
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?
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"; } }
Partager