begin process at 2012 05 31 19:59:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Bases de données

 > 

Supression automatique MySQL


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Supression automatique MySQL

lundi 25 avril 2005 à 21:39:22 | Supression automatique MySQL

chatainsim

Bonsoir, j'aurais aimer savoir si il est possible de supprimer automatiquement une ligne MySQL
Je m'explique :

En fait il faudrais pouvoir compter le nombre de ligne dans la table MySQL (mysql_num_rows) ensuite si le nombre de ligne est superieur à par exemple 50 on va dire 51 ça supprime la 51eme ligne trier par ID DESC pour effacer par exemple la ligne avec l'ID la plus petite (1 par exemple).

Si quelqu'un aurait une idée !
Merci
Simon
mardi 26 avril 2005 à 09:28:01 | Re : Supression automatique MySQL

malalam

Administrateur CodeS-SourceS
Hello,

la 51eme, ou, si tu en as plus, toutes les lignes au-dessus de 50 ?

Enfin oui c'est possible. num_rows en effet pour compter, puis un drop avec la clause LIMIT.

Par exemple :

DELETE FROM matable LIMIT 50, 1
effacera la ligne 51.


DELETE FROM matable LIMIT 50

effacera toutes les lignes a partir de la 51eme. (l'offset commence a 0, pas a 1, comme pour un tableau).

mardi 26 avril 2005 à 15:51:27 | Re : Supression automatique MySQL

Anthomicro

Salut,

mysql_connect('hote','user','passe');
$r=mysql_fetch_row(mysql_query('SELECT COUNT(*) FROM ta_table'));
$nbre=$r[0]-50; //nombre de lignes à supprimer
mysql_query('DELETE FROM ta_table WHERE id<'.$nbre);
mysql_close();

ça devrait fonctionner.

a +


    mardi 26 avril 2005 à 23:25:03 | Re : Supression automatique MySQL

    chatainsim

    En fait je me suis mal exprimer et je me suis tromper dans la question, je voudrais plutot supprimer l'id 1 par exemple quand on arrive à 50 lignes, ensuite l'id deux quand on arrive de nouveau à 50 lignes etc ... pour qu'il y est toujours 50 lignes au total, et qu'il supprimer les plus anciennes !
    mardi 26 avril 2005 à 23:35:14 | Re : Supression automatique MySQL

    Anthomicro

    J'ai parfaitement compris ;-)

    Tu as essayé ma solution ?


      mardi 26 avril 2005 à 23:36:33 | Re : Supression automatique MySQL

      Anthomicro

      Le problème est que tes ID ne reviennent pas à zéro ensuite...

      Attends, rajoute-ça à mon code :

      mysql_connect('hote','user','passe');
      $r=mysql_fetch_row(mysql_query('SELECT COUNT(*) FROM ta_table'));
      $nbre=$r[0]-50; //nombre de lignes à supprimer
      mysql_query('DELETE FROM ta_table WHERE id<='.$nbre);
      mysql_quer('UPDATE ta_table SET id=id-'.$nbre);
      mysql_close();



        mercredi 27 avril 2005 à 08:17:58 | Re : Supression automatique MySQL

        malalam

        Administrateur CodeS-SourceS
        La je ne pige pas lol...

        Ok j'avais mal compris (omis le DESC), mais...ma solution reste valable, avec le limit. Il suffit de changer les bornes, voila tout, et c'est plus simple.
        mercredi 27 avril 2005 à 09:19:16 | Re : Supression automatique MySQL

        Anthomicro

        Ta solution ne sera pas valable si la table n'est pas organisée par id DESC.

        Donc il faut s'assurer que la table est bien organisée par ID DESC (ce qui n'est plus forcément le cas après de multiples ajouts/suppressions.

        Bref il te faut une requête supplémentaire : ALTER ta_table ORDER BY id DESC

        donc en tout deux requêtes. Un order étant quelque chose de gourmand, je pense que ma solution est plus rapide sur une table qui commence à avoir du contenu (si t'as le courage de tester ^^)

        a +

          mercredi 27 avril 2005 à 09:40:21 | Re : Supression automatique MySQL

          malalam

          Administrateur CodeS-SourceS

          Ben...

          DELETE FROM matable ORDER BY id DESC LIMIT 1

          non ?
          (je n'ai pas rajoute le calcul en fonction de la limite a 50 hein, mais le principe est le meme).

          mercredi 27 avril 2005 à 11:08:05 | Re : Supression automatique MySQL

          Anthomicro

          Justement je sais pas si ça marche, en tout cas si ça marche c'est clair qu'il faut prendre cette solution :-)



            1 2 3

            Cette discussion est classée dans : ligne, mysql, exemple, automatique, supression


            Répondre à ce message

            Sujets en rapport avec ce message

            Supression automatique sous mysql [ par Drazounet ] Bonjour à tous,Je voudrais savoir si c'est possible d'effacer les enregistrement de la base de données après un certain temps donné.Merci d'avance MySql-Tableau HTML formattée [ par carlitos_brown ] Bonjour à tous,J'ai une table MySql (composée d'un champ titre et d'autres champs ligne1,ligne 2, ligne 3, etc) sur laquelle je fais une reqûete SELEC PB RAND MYSQL [ par jdaviaud ] Voila, je fais une requete Mysql avec plusieurs condition, et je lui demande ensuite de faire un RAND sur le résultat et de m'en donner que la 1ere li indexation et défillement [ par toffis ] Bonjour,J'ai un petit probleme avec ce script compte tenu que l'indexation avec LIMIT ne fonctionne pas dans ce cas,je voudrais quand même avoir la po nbr de ligne d'une requete [ par eryk17 ] je voudrai recuperer le resultat d'une requete pour le foutre dans un bouton radio, pour cela il me faut connaitre le nombre de ligne de cette requete Afficher une ligne d'une table mysql [ par Alferox ] Bonjours,bon bin une question de base toute con.Je voudrais afficher uniquement la ligne qui port l'id 2 d'une table. Il n'y a pas plus simple que de Au secours !!!! [ par eowene ] Bonjour à tous. J'ai un problème et je ne comprends pas du tout d'où il vient.Voilà le principe...Je recherche un nom dans une base de données. Pour c Au secours [ par eowene ] Bonjour à tous. J'ai un problème et je ne comprends pas du tout d'où il vient.Voilà le principe...Je recherche un nom dans une base de données. Pour c Champ Mysql dans textarea...retour à la ligne non conservé. [ par stevethx40 ] Salut !!Voilà j'ai un soucis que j'ai retrouvé plusieurs fois sur le forum...mais pas de réponse qui ont marché avec moi...J'ai un formulaire qui envo pret à me jeter par la fenetre (delete mysql) [ par sniperts ] voila je veux supprimer des champs via un formulaire dynamiquele formulaire se charge bien , mais la suppression ne fonctionne pas, qqn peut m aider!v


            Nos sponsors


            Sondage...

            CalendriCode

            Mai 2012
            LMMJVSD
             123456
            78910111213
            14151617181920
            21222324252627
            28293031   

            Consulter la suite du CalendriCode

            Photothèque

            A découvrir



             
            Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
            CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
            CodeS-SourceS.com© est une marque déposée tous droits réservés

            Google Coop CodeS-SourceS Google Coop CodeS-SourceS
            Temps d'éxécution de la page : 0,421 sec (4)

            Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales