Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2008, 02h26   #1
Membre du Club
 
Inscription : novembre 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 236
Points : 40
Points : 40
Par défaut [Conception] Ajout d'un crédit une fois par jour dans la bdd

Bonsoir a tous,

J'aimerais ajouter un chiffre dans ma bdd, une seule fois par jour et par membre.

Mais je ne vois pas du tout comment gerer ceci au niveau de la date etc...Sans avoir d'interactivité au niveau client (sans qu'il se connecte au site).

Merci d'avance pour l'aide que vous me fournirez.
Dev@lone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 04h27   #2
Futur Membre du Club
 
Inscription : septembre 2007
Messages : 20
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 20
Points : 18
Points : 18
Citation:
J'aimerais ajouter un chiffre dans ma bdd, une seule fois par jour et par membre.
Citation:
Sans avoir d'interactivité au niveau client (sans qu'il se connecte au site).
Il me semble que ce n'est pas très logique et je ne vois pas ou tu veux en venir. Cependant pour faire ce que tu souhaites (encore une fois si je comprends bien), tu peux concaténer le jour et l'id de l'utilisateur par exemple.

Si tu étais plus clair il me serait plus simple de t'aider.
Lidya est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 15h08   #3
Membre du Club
 
Étudiant
Inscription : décembre 2007
Messages : 44
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2007
Messages : 44
Points : 45
Points : 45
Envoyer un message via MSN à Taka-kun
Bonjour,

regarde du côté des CRON. Et par la même occasion lit ceci :
http://matthieu.developpez.com/execution_periodique/
Taka-kun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 15h14   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Ton but est il de faire gagner par exemple une piece d'or a un membre toutes les 24 heures? Et si ton membre ne se connecte pas pendant 7 jours, le total de ses pièces aura augmenté de 7 ?

Dans ce cas tu peux utiliser une astuce qui est à la connexion d'un membre de regarder de quand date sa dernière connexion. Si elle date du jour même tu ne fais rien, sinon tu calcules le nombre de jours qui s'est passé entre les deux dates et tu peux lui ajouter automatiquement (et donc maximum une fois par jour) le crédit voulu.

Ca pose par contre un problème si tu établis par exemple des classements journaliers parce que certains comptent ne seront pas a jour vu que le membre ne se sera pas connecté. Dans ce cas il faut revenir a une tache CRON qui se chargera de faire tous ces calculs une bonne fois pour toute chaque matin.
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2008, 17h45   #5
Membre du Club
 
Inscription : novembre 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 236
Points : 40
Points : 40
Mon but et de faire gager dix points par jours, qui seront effacés automatiquement le jour même si non utilisés...
Dev@lone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2008, 19h27   #6
Membre émérite

 
Avatar de FCYPBA
 
Inscription : novembre 2004
Messages : 735
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2004
Messages : 735
Points : 924
Points : 924
Dans ce cas là, je verrais bien un système de ce genre là.

Au moment ou la personne se connecte, tu lui ajoutes ses 10 points si tu ne l'a pas déjà fait. Pour ne pas réattribuer des points en cas de reconnexion, tu peux garder la trace de la dernière connexion.

De cette façon, si la personne ne se connecte pas, elle a pas de points et tu n'as pas à les enlevés.

Maintenant, il reste à solutionner les points attribués mais non utilisés.
Pour cela, il faudrait savoir si ces points viennent s'ajouter à d'autres points ?
Si ces points sont uniques ou stockés à part, il te suffit à la première connexion de la journée de mettre ses points à 10 sans te soucier tu total précédent ( 0 ou autre )
__________________
Pierre
1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
3. Un code rapide c'est bien, un code maintenable c'est mieux
...

Why was the font tag an orphan ? Because it didn't have a font-family.
FCYPBA est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2008, 20h47   #7
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 832
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 832
Points : 3 464
Points : 3 464
Citation:
Envoyé par Subshadow Voir le message
Mon but et de faire gager dix points par jours, qui seront effacés automatiquement le jour même si non utilisés...
Quel SBGB ? Si MySQL 5.1 tu as un EVENT SCHEDULER très sympa : http://dev.mysql.com/doc/refman/5.1/en/events.html
=> Ex tous les soirs à minuit :

Code :
1
2
3
UPDATE joueurs
SET credits = 10 ;
-- les crédit de tous les joueurs passent à 10, ceux non utilisés sont perdus
Autrement tu as aussi comme recommandé plus haut les crontabs. Tu peux éventuellement passer par webcron.org pour appeler un script exécutant l'UPDATE précédent.
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2008, 17h33   #8
Membre du Club
 
Inscription : novembre 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 236
Points : 40
Points : 40
La derniere solution avec les evenements mysql me plait bien...

Cela dis, je ne comprend pas très bien où on doit programmer ceci... :/
Dev@lone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/02/2008, 18h30   #9
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 832
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 832
Points : 3 464
Points : 3 464
Un article à ce propos : http://atranchant.developpez.com/mysql/evenement/
Attetion à la version de ton serveur MySQL !
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2008, 00h24   #10
Membre du Club
 
Inscription : novembre 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 236
Points : 40
Points : 40
Merci de l'info.

Lorsque je fais ceci: SHOW GLOBAL VARIABLES LIKE 'event_scheduler';

Pour demander la verif de la variable, sa me met ok, en 0,0005s, mais quand je veux mettre le event_scheduler à 1, sa me répond ceci:

#1193 - Unknown system variable 'event_scheduler'

Je pense que c'est aps possible sur ma version... 5.0.44
Dev@lone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2008, 00h47   #11
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 832
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

Informations professionnelles :
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2005
Messages : 2 832
Points : 3 464
Points : 3 464
Citation:
Envoyé par Subshadow Voir le message
Je pense que c'est aps possible sur ma version... 5.0.44
Oui il faut la 5.1.(qquechose)
__________________
Un problème exposé clairement est déjà à moitié résolu
Keep It Smart and Simple
Séb. est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2008, 13h45   #12
Invité de passage
 
Inscription : janvier 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 3
Points : 3
Points : 3
Heu... bonjour à tous,

Je comprends pas trop (enfin le Scheduler c'est bon) le but de la manoeuvre, tu veux créditer le compte d'un utilisateur, mais s'il utilise pas lui enlevez le crédit alloué, en quelque sorte une prime a la connexion ! Pourquoi la retirer alors ?

Et pour ton algorythme :

Achaque connexion d'un utilisateur:

Debut verification connexion jour
// credit_total = valeur réel du credit
// credit = valeur du credit sans la prime à la connexion
// credit_jour = prime à la connexion

// Initialisation Variable
INT Val_credit_jour = 10;
SI "connexion_jour" == 1;
ALORS je fais rien;
SINON
"connexion_jour" = 1;
"credit_jour" += "Val_credit_jour";
"credit_total" = "credit" + "credit_jour";
Fin verification connexion jour

Debut procedure stocker
TRIE par "connexion_jour" == 1;
TANQUE "connexion_jour" == 1 alors
SI "credit_total" < "credit"
ALORS "credit" = "credit_total";
SINON
credit_jour -= "Val_credit_jour";
Fin procedure stocker
Sniper_68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/02/2008, 17h08   #13
Membre du Club
 
Inscription : novembre 2007
Messages : 236
Détails du profil
Informations forums :
Inscription : novembre 2007
Messages : 236
Points : 40
Points : 40
Merci de ta réponse, sa me semble interessant, mais tu as mal compris ce que je souhaitais.

Je souhaite qu'un script s'éxécute tous les jours a minuit, pouur en quelque sorte tous mes membre, juste un update a faire puisque que le crédit soit utilisé ou pas, je remet mon champ à 10

De plus je pense m'orienter vers une page qui attribut les points et que je lance grâce à un planificateur de tache!
Dev@lone est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/02/2008, 14h53   #14
Invité de passage
 
Inscription : janvier 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 3
Points : 3
Points : 3
Donc la solution est simple,

Parcourt de la base, puis remise du champs "credit_jour" à 10, pour tous les utilisateurs.

En créant la procédure à l'aide de "phpMyAdmin" ou autres..., tu la copie ensuite dans un fichier puis tu mets en place une tache avec "cron" sous linux et "at" sous windows qui va exécuté le fichier sql créé à l'heure voulu.
Sniper_68 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h30.


 
 
 
 
Partenaires

Hébergement Web