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 ...
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 ...
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....
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.
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 ...
La deuxième solution de Fladnag est 100% PHP / MySQL...
Envoyé par JWhite
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
Non, j'ai déjà fait ça dans d'autres circonstances, c'était la seule solution que j'avais.Envoyé par ok07
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
![]()
Merci de ta réponseEnvoyé par JWhite
j'en prends note
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.Je vois pas le rapport avec la question
![]()
@+
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)Envoyé par ok07
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)
C'est bien ce qu'il me semblait mais j'étais pas sûr.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
Sisi en cherchant bien sur Google tu vas trouver çà (ou ptet dans le FAQOn peux pas laver du linge avec)
Envoyé par JWhite
?
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo preg_replace("#(chemise|t-shirt|pantalon)(.*)taches?#Uis", "$1$2", $texte);
![]()
![]()
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, or c'est impossible car il n'y a pas tous les mois le même nombre de jour donc ... heu ... je comprends pasd'exécuter une fonction à intervalle régulier![]()
Merci de m'aider parce que là ... je suis à bout![]()
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
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 ?
sinon la solution du cron correspond bien. Sauf qu'au lieu de perl tu utilises php pour ton scriptTu 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!!)
Merci pour vos réponseje 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![]()
ben pourquoi tu stockes cette info alors que tu peux la récupérer facilement par requêtage?
Je plussoie.Envoyé par gerald2545
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.
Partager