[SQL] Changement d'etat d'une table au bout de x jours

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Dark.Ginger, 26 Avril 2012.

  1. Dark.Ginger
    Dark.Ginger Nouveau WRInaute
    Inscrit:
    24 Janvier 2004
    Messages:
    2
    J'aime reçus:
    0
    Bonjour,

    Ma base de données stocke les date au format unix_time.
    J'aimerais que au bout de x jours (10 ici) l'etat passe de vie à mort (par exemple)

    Code:
    UPDATE table1 
    LEFT JOIN table2 ON table2.id_table1=table1.id 
    SET table1.etat='mort',table1.commentaire='Bonne nuit' 
    WHERE table1.etat='vie' 
    AND (ADDDATE(table2.last,10)-CURDATE())<0;
    Sur la table 1 sont stocké les etat vie ou mort, sur la table 2 sont stockés les dates.
    J'aimerais donc que lorsque la colonne last de la table 2 a une date ayant plus de 10 jours l'etat sur la table 1 passe de vie a mort.

    Le soucis que je rencontre est que ce code ne fait rien sur la base.
    Ma version de mysql :
    Code:
    # mysql -V
    mysql  Ver 14.12 Distrib 5.0.45, for redhat-linux-gnu (x86_64) using readline 5.0
    Voilà j'ai consulté la FAQ officielle MYSQL : http://dev.mysql.com/doc/refman/5.0/fr/date-and-time-functions.html
    Mais TIMESTAMPADD et TIMESTAMPDIFF n'existe pas pour moi...

    Pourriez vous m'aidez s'il vous plait? sachant que le SQL et moi... mais bon j'apprends, j'apprends XD
     
  2. erestrebian
    erestrebian WRInaute occasionnel
    Inscrit:
    15 Juin 2007
    Messages:
    415
    J'aime reçus:
    0
    Bonjour,

    Personnellement, pour faire ce genre d'opération, j'utiliserais un cron. Je n'ai pas vraiment idée du but de ce passage de "vie" à "mort". Si c'est pour l'archivage, mieux vaudrait extraire les enregistrements concernés et les stocker dans d'autres tables. Si c'est pour un jeu, l'affichage du statut "mort" peut se faire avec un test sur la date dans le script de votre choix...
     
  3. Dark.Ginger
    Dark.Ginger Nouveau WRInaute
    Inscrit:
    24 Janvier 2004
    Messages:
    2
    J'aime reçus:
    0
    Bonjour,

    Merci pour la réponse.
    Il s'agit justement d'un cron chargé d'executer une script SQL sur une table afin de simplement faire un changement de status de fiches.

    Le soucis que je rencontre est que le cron ne s'execute pas et que nous ne voyons nul changement de status.

    Pour des raisons logicielle les date sont stockés au format unix_time donc j'ignore si par hasard le soucis rencontré ne serais pas du a ce format.

    Je vais essayer d'etre plus claire et de prendre un second exemple plutôt que vie et mort.
    La table 1 de mon exemple contiendrais des fiches client par exemple ainsi que la date de derniers appel, la table 2 contient l'etat des fiches en cours/clos/perimé...
    Je désire que via un cron s'executant quotidiennement les fiches notés comme en cours sur la table 1 et auquel la date de dernier appel sur la table 1 date de plus de 10 jours soient basculées sur l'etat clos ou périmé.

    Or je n'arrive pas à le faire malgré mes recherches et la fouille du manuel, et je ne vois pas ou cela bug :/

    Merci pour l'aide que vous pourriez m'apporter.
     
  4. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 665
    J'aime reçus:
    77
    commence par tester ton script sans le cron
    fait un select pour ressortir les champs a mettre a jour, voir ressort l'ensemble des champs si tu ne peux pas les attraper par rapport a la date souhaité
    met ces enregistrement dans un tableau php
    traite la date avec la fonction date ou mktime de php lors du test
    puis fait une boucle sur le tableau avec le test et update pour ta mise a jour

    de cette maniere tu pourras avancer pas a pas sur ton script et il sera simple a debugger
     
Chargement...
Similar Threads - [SQL] Changement etat Forum Date
[sql] clé étrangaire Développement d'un site Web ou d'une appli mobile 9 Mai 2014
[SQL] Meme requete qui ne donne pas le meme résultat Développement d'un site Web ou d'une appli mobile 12 Avril 2012
[SQL] Recherche dans une base de données Développement d'un site Web ou d'une appli mobile 7 Juin 2011
[SQL] une somme un peu spéciale... Développement d'un site Web ou d'une appli mobile 1 Avril 2011
[SQL] Stocker nombre à virgules Développement d'un site Web ou d'une appli mobile 21 Octobre 2010
[SQL] Element pas dans le IN Développement d'un site Web ou d'une appli mobile 23 Février 2010
Erreur 404 suite à changement de site mobile Problèmes de référencement spécifiques à vos sites 19 Septembre 2020
WordPress Lignes restantes après changement de plugin de cache URL Rewriting et .htaccess 5 Juin 2020
Redirection sous domaine et pages apres changement de domaine URL Rewriting et .htaccess 2 Juin 2020
Changement du mot clé sur fiche produit : meilleur process ? Débuter en référencement 5 Avril 2020