MySQL : limité les enregistrements

Ze_Sky -  
Ssylvainsab Messages postés 2892 Statut Modérateur -
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 !
Configuration: Windows XP
Internet Explorer 7.0

3 réponses

  1. Ssylvainsab Messages postés 2892 Statut Modérateur 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
  2. 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
  3. Ssylvainsab Messages postés 2892 Statut Modérateur 825
     
    De rien :-)

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