MySQL : limité les enregistrements

Ze_Sky -  
Ssylvainsab Messages postés 2884 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour à tous,

Voila ma question est toute simple. J'ai créer une table MySQL qui contient les news d'un site.
J'aimerai simplement pouvoir concerver les 10 derniers enregistrement dans la table et supprimer les anciens afin de ne pas devoir la vider manuellement.

Une petite solution ??

Merci !

3 réponses

Ssylvainsab Messages postés 2884 Date d'inscription   Statut Modérateur Dernière intervention   825
 
Salut.

Tu peux essayer ceci quand tu insères une news :
mysql_query('INSERT INTO ... insertion de la news')or die(mysql_error());
//suppression partout ou l'id est inférieur a 10 de moins que l'id de la news que l'on vient de mettre
mysql_query('DELETE FROM table_news WHERE news_id<'.mysql_insert_id()-10);

Par contre, si tu as plusieurs tables, il se peut que le mysql_insert_id soit faussé.
Attention.
0
Ze_Sky
 
Merci !! Je ne connaissais pas la fonction mysql_insert_id
par contre, j'ai du changer un peu la ligne, car ça fonctionnais pas :

$id = mysql_insert_id();
$id = $id-10;
mysql_query("DELETE FROM news WHERE ID < $id");

Mais maintenant tout fonctionne ! Un grand merci à toi !!
0
Ssylvainsab Messages postés 2884 Date d'inscription   Statut Modérateur Dernière intervention   825
 
De rien :-)

Ah, un conseil d'optimisation : regarde un peu la fonction mysql_unbuffered_query ;-)
0