IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

[PHP/MySQL] Insérer des données dans une DB le dernier jour de chaque mois


Sujet :

SQL Procédural MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 33
    Points
    33
    Par défaut [PHP/MySQL] Insérer des données dans une DB le dernier jour de chaque mois
    Bonjour,

    Je voudrais enregistrer automatiquement une valeur à la fin de chaque mois dans une base de données, mais je ne sais pas comment faire

    Merci de m'aider.

    Bonne après midi ...

  2. #2
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    je ne sais pas si mysql permet d'exécuter une fonction à intervalle régulier (ce qui serait le plus simple), mais moi j'utilise un cron (je suis sous RedHat AS3) qui appelle un script perl qui exécute les requêtes SQL désirée....

  3. #3
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    sinon tu as http://webcron.org/

    Une autre solution bien plus bourrin consiste a stocker quelque part la derniere fois que l'action a été faite. Puis a chaque chargement de page, verifier que l'action a déja été faite pour ce mois ci. Si ce n'est pas le cas, tu fait l'action, comme ca elle sera faite par ton premier visiteur du mois a chaque fois.

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 33
    Points
    33
    Par défaut
    Merci pour vos réponse

    >> gerald2545 et Fladnag : en fait je préfèrerais utiliser PHP et MySQL uniquement.

    N'existe t-il pas une fonction qui permette de la faire ? J'ai cherché dans la doc de PHP en vain ...

  5. #5
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    La deuxième solution de Fladnag est 100% PHP / MySQL...

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par JWhite
    La deuxième solution de Fladnag est 100% PHP / MySQL...

    Effectivement mais elle me parait compliquée

    Est ce que c'est possible de le faire avec une expression régulière ? Si oui quelqu'un peut m'expliquer ?

    Merci

  7. #7
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par ok07
    Effectivement mais elle me parait compliquée
    Non, j'ai déjà fait ça dans d'autres circonstances, c'était la seule solution que j'avais.

    1 - Tu stockes quelque part (dans ta base à la limite) la date de ton dernier enregistrement
    2 - Quand une de tes pages (une qui est fréquemment utilisée tant qu'à faire) est lancée par un utilisateur, tu regardes par rapport à la date courante et à la date sauvegardée si il faut mettre un nouvel enregistrement
    3 - si c'est pas la peine (c'est à dire si la valeur du mois précédent a été enregistrée) tu fais rien, sinon tu fais l'enregistrement et tu mets à jour la valeur de la date du dernier enregistrement.

    Ca se fait tout seul si tu as compris le principe.


    Est ce que c'est possible de le faire avec une expression régulière ?
    Je vois pas le rapport avec la question

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 33
    Points
    33
    Par défaut
    Citation Envoyé par JWhite
    Non, j'ai déjà fait ça dans d'autres circonstances [...], ça se fait tout seul si tu as compris le principe.
    Merci de ta réponse j'en prends note

    Je vois pas le rapport avec la question
    En fait, je voulais demander si c'étais possible d'enregistrer automatiquement une valeur à la fin de chaque mois dans une base de données avec les expressions régulières.

    @+

  9. #9
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Citation Envoyé par ok07
    En fait, je voulais demander si c'étais possible d'enregistrer automatiquement une valeur à la fin de chaque mois dans une base de données avec les expressions régulières.
    Quelque chose me dit que tu as deja entendu quelqu'un dire "mais on peut tout faire avec les expressions régulieres !" mais que tu ne sais pas réellement ce que c'est ;o)

    Les expressions régulieres ne peuvent etre utilisées que pour faire des recherches et/ou des remplacements dans des chaines de caracteres. On peux pas laver du linge avec, ni faire un toast, ni mettre a jour une base de donnée ;o)

  10. #10
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Quelque chose me dit que tu as deja entendu quelqu'un dire "mais on peut tout faire avec les expressions régulieres !" mais que tu ne sais pas réellement ce que c'est
    C'est bien ce qu'il me semblait mais j'étais pas sûr.

    On peux pas laver du linge avec
    Sisi en cherchant bien sur Google tu vas trouver çà (ou ptet dans le FAQ )

  11. #11
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    Citation Envoyé par JWhite
    Sisi en cherchant bien sur Google tu vas trouver çà (ou ptet dans le FAQ )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo preg_replace("#(chemise|t-shirt|pantalon)(.*)taches?#Uis", "$1$2", $texte);
    ?

  12. #12
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut


    Bien joué, moment détente avant le WE

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 33
    Points
    33
    Par défaut


    Merci à Fladnag et JWhite pour ce foutage de gueule .

    Bon, je pense faire ça avec une fonction mais ce que vous m'avez dis ne me semble pas clair (ou alors c'est moi ).

    En gros vous me conseillez
    d'exécuter une fonction à intervalle régulier
    , or c'est impossible car il n'y a pas tous les mois le même nombre de jour donc ... heu ... je comprends pas

    Merci de m'aider parce que là ... je suis à bout

  14. #14
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    C'est pas tout à fait ça...

    Allez je m'enflamme dans un algo freestyle :

    (quand l'utilisateur arrive sur la page que tu as choisie)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SI MOIS(date_dernier_enregistrement) < MOIS(date_courante) ALORS
       (ça veut dire que c'est la première visite du mois donc on enregistre)
       enregistrer la valeur pour le dernier mois
       mettre à jour la date du dernier enregistrement
    SINON
      rien à faire parce que le traitement du mois précédent a déjà été fait
    FSI

  15. #15
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    1 249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 249
    Points : 1 565
    Points
    1 565
    Par défaut
    En fait, c'est un peu l'histoire du chat de Schrödinger.

    Tu as besoin du resultat du traitement sur une certaine page non ?

    Donc imaginons que tu mette l'appel a la fonction en haut de cette page, tu est sur qu'elle sera executée avant chaque affichage de la page, donc si le mois précédent elle ne s'est pas executée (ie : on est pas allé sur cette page), elle se lancera avant le premier affichage.

    Maintenant si la page en question n'est pas visitée au moins une fois par mois, tu peux aussi mettre l'appel a la fonction sur une page plus vue (voir en haut de chaque page de ton site si t'est parano comme moi !)

    En gros, dès que quelqu'un se connecte, ta petite fonction va :
    * Regarder la date actuelle
    * Verifier que le mois de la date stockée de la derniere mise a jour est différent du mois en cours
    * Lancer le traitement

    Evidemment, si tu as 3000 visiteurs par mois, tu va executer 2999 fois un test qui renverra false pour 1 test qui renverra true.
    Evidemment aussi, si ton site n'a pas une seule visite en un mois, le traitement ne sera jamais executé.

    C'est plus clair ?

  16. #16
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    sinon la solution du cron correspond bien. Sauf qu'au lieu de perl tu utilises php pour ton script Tu pourras exécuter ton script php le 1er jour de chaque mois à 00H00min00s00....1, et ce tous les mois, quel que soit le nombre de visiteur que tu as (0 visisteur te posant problème avec l'autre solution en l'occurence, mais on ne te le souhaite pas!!)

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 33
    Points
    33
    Par défaut
    Merci pour vos réponse je vais bucher dessus

    Bon j'explique plus dans les détails pour être plus clair.

    Tous les mois, mes visiteurs vont gagner des points, à compter de leur inscription. Ensuite, je veux faire un tableau de statistiques (un récapitulatif) des
    points gagné au mois de janvier, février, etc

    Et donc j'ai besoin d'enregistrer le nombre de points qu'ils ont gagnés chaque mois pour pouvoir mettre :
    150 points gagnés au mois de janvier, 128 au mois de février, etc.

    Mais je ne sais pas comment faire ça ...

    En espérant avoir été clair, @+, et encore

  18. #18
    Membre éclairé
    Avatar de gerald2545
    Profil pro
    Inscrit en
    Février 2003
    Messages
    744
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 744
    Points : 773
    Points
    773
    Par défaut
    ben pourquoi tu stockes cette info alors que tu peux la récupérer facilement par requêtage?

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 67
    Points : 33
    Points
    33
    Par défaut
    Comment ça

  20. #20
    Membre expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Points : 3 115
    Points
    3 115
    Par défaut
    Citation Envoyé par gerald2545
    ben pourquoi tu stockes cette info alors que tu peux la récupérer facilement par requêtage?
    Je plussoie.

    En fait il faudrait connaître la structure de ta base, mais si c'est bien fait tu peux avoir ces infos avec des belles requêtes SQL.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/07/2012, 05h54
  2. Access: Insérer des données dans une table acces
    Par Malika_AL dans le forum VBA Access
    Réponses: 6
    Dernier message: 27/01/2008, 22h41
  3. [SQL] Insérer des données dans une table
    Par wonga dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 01/08/2007, 12h00
  4. Insérer des données dans une BD depuis un fichier .bat
    Par kurkaine dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 24/11/2006, 08h31
  5. [PHP-JS] Traitement des données dans une autre page...
    Par sekiryou dans le forum Langage
    Réponses: 5
    Dernier message: 04/03/2006, 09h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo