Administrateur PHPfrance |
13231 Messages
17 avr. 2006, 10:46
A la vue de cette requete, tu supprimes tous les enregistrements dont l'id est
différent de celui que tu viens de récupérer
"DELETE from tmos_results WHERE playerid!='".$idjoueur."'"
Le résultat de cette requete est donc que tout les enregistrements autre que celui que tu veux sauvegarder est supprimé ... Dans le cas où ta 1ere requete retourne au moins 2 enregistrements, ta seconde table est vidée.
Ce que je te conseille de faire, c'est de récupérer tout les id dans un tableau et ensuite, de supprimer de ta seconde table tout les id qui ne sont pas dans ce tableau. cette methode représente, selon moi, 2 avantages :
- eviter de vider la table
- 1 seule requete de suppression
Voiçi le code associé
$sql_info = mysql_query("SELECT id FROM tmos_players");
//Instanciation du tableau de stockage des id
$a_id = array();
//Récupération des id a sauvegarder
while($donnees_info = mysql_fetch_array($sql_info)) {
$a_id[] = $donnees_info['id'];
}
//Construction d'une chaine de caractère contenant les id a sauvegarder, à utiliser dans la requete SQL
$str_id = implode(", ", $a_id);
//Supression de tous les enregistrements dont les id ne sont pas dans la table tmo_players
mysql_query("DELETE from tmos_results WHERE playerid NOT IN (".$str_id.")");