Heure et update ?

Résolu
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007 - 7 nov. 2005 à 14:15
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 9 nov. 2005 à 15:15
Bonjour tous le monde,
Je vous ecris parce que je me suis toujours posé la question comment il fallait faire par exemple pour que un update s'enclenche chaque jours A minuit en php:

je mexplique :
J'ai toujours eu un probleme avec les dates, Heures etc...
Je suis actuellement entrain de programmer un espace membre avec systeme de point ( Aucune difficultén la dedans ! juste une question )
quelquun pourrait il mexpliquer comment cela puisse marché ?

Dans mon espace membre, figure une rubrique , appelé JEUX
Dans Jeux, Il y aurait un quota de x parties, qui se remetterais par exemple à 10 parties chaque jour à partir de minuit. !

le fait de credité 10 partie ne me pose aucun probleme !
mais comment faire pour programmer en php une fonction, requete ou une condition qui dirait :

Si la $date est apres minuit par rapport a ce Jour: update 10 (int) partie AUTOMATIQUEMENT

(Attention je dis bien 10 partie et pas $parties+10 parties)
Si le mec lui reste 3 parties par exemple aujourdhui, et ben c'est tous, il l'ai perd puisque lupdate c'est enclanché a 00h00 et ca lui permet de jouer 10 nouvelle parties !et non a 10+3 =13

Enfin bref quoi ? jespere vous arrivez a me comprendre un petit peu ....
c'est pas facile de mexprimer dans ca :s je l'avou

En gros je voudrai savoir comment faire pour enclencher juste un update a minuit chaque jour... et juste une fois par jours ???

A noté que si le membre ce connecte à 13h00 de lapres midi et quilne sait pas connecté hier, lupdate s'enclenche quand meme, mais juste une seul FOIS.

Merci pour vos reponses
Cordialement

24 réponses

cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
7 nov. 2005 à 16:30
Salut,



www.webcron.org ;-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
3
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
7 nov. 2005 à 15:33
Via Cron (petite recherche sur Google tu verras c'est très simple).
0
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
7 nov. 2005 à 15:55
via cron ? c quoi ca ?
0
milkasoprano Messages postés 239 Date d'inscription jeudi 21 juillet 2005 Statut Membre Dernière intervention 1 juillet 2007
7 nov. 2005 à 19:24
lool anthomicro, c super comme site mais je prefere le faire moi meme en trouvant une fonction qui vient de moi... dou cette raison...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
7 nov. 2005 à 19:27
tu ne pourras pas si t'as pas un serveur dédié sous linux ;-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 nov. 2005 à 20:36
lol, on t'a déja filé la question :

man cron

man crontab

man fcron



....

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
7 nov. 2005 à 20:37
la réponse dsl...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
8 nov. 2005 à 12:17
Je trouve l'utilisation du Cron inutile, à moins que tu veuilles
envoyer un mail d'information à tes membres à minuit pour les prévenir
que leur quota de parties était revenu à 0...



Plus concrêtement, tu vas avoir le membre qui va voir sa liste de parties restante affiché, et après minuit +10



Ben il suffit de répertorier la date des parties durant au moins une
journée, et a chaque appelle de la page, tu vérifie les dernière
parties, et s'il y en a eu déjà trois ce jour-ci, tu écrit 10-3, et si
elle datent toute du jour d'avant, tu écrit 10 dans l'interface
utilisateur...



En gros, dans ta base de données, tu n'as que la liste des parties, et
tu as juste à compter le nombre de parties qui se sont dérouler entre
entre Aujourd'hui minuit, et Aujourd'hui à l'heure actuelle. Et
afficher la différence =)
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 nov. 2005 à 12:48
Son problème est tout simple ;-)



A minuit tu fais un UPDATE table SET parties=10 et hop c'est torché



à moins que j'ai mal compris...

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
8 nov. 2005 à 12:52
Oui mais disons que de mettre cette info dans une base de données est
inutile, car elle peut être déduite de la date actuelles et de celle
des parties précédentes (a moins qu'il ne garde pas cette
information...)
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 nov. 2005 à 13:21
"

Oui mais disons que de mettre cette info dans une base de données est inutile"



bah non quand un joueur joue une partie, faut bien qu'il n'en joue que 10, pas 20 ;)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
8 nov. 2005 à 13:24
10 par jour. Il est facile de compter le nombre de parties qu'il a joué
en une journée et lui en refuser plus s'il dépasse le quota... Je ne
pense pas qu'il y ait besoin de CronTruc pour ça
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 nov. 2005 à 13:51
bien sûr, mais tu mets comment à jour toutes les parties à minuit ?
lorsqu'un visiteur visite le site ? c'est un peu gourmand et hasardeux
comme méthode ;-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
8 nov. 2005 à 13:59
Ah? Un visiteur aimerais savoir combien de partie peut encore jouer le
reste du monde? Qu'est-ce que les autres en ont a foutre que babygirl18 ait ou non 4 ou 2 parties restantes?

Comme milka a dit qu'il créait un espace membre, je pensais, que la
personne en se loggant, verrait le nombre de partie qu'il lui reste
pour le jour ; permettre ou interdire l'accès à une nouvelle partie est
alors assez simple.

Pis si j'ai bien compris ce n'est pas les parties qu'on met a jour,
mais le quota restant... Nan sérieusement je ne vois pas en quoi Cron
serrait indispensable.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 nov. 2005 à 15:08
"Comme milka a dit qu'il créait un espace membre, je pensais, que la
personne en se loggant, verrait le nombre de partie qu'il lui reste
pour le jour ; permettre ou interdire l'accès à une nouvelle partie est
alors assez simple."



t'es bien obligé de faire une requête sql pour faire diminuer le nombre
de parties restantes et pour remettre 10 parties idem, pour les mettre
à minuit t'as besoin d'un cron (et pas d'un visiteur supposé visiter le
site à minuit...)



donc il y a bien besoin de cron :-)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 nov. 2005 à 17:40
le nombre de parties qu'il lui reste serait :



SELECT 10-COUNT(parties.id)

FROM parties

WHERE id_joueur=...

AND date=...


ça te permet de faire d'es stats aussi...


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
8 nov. 2005 à 18:03
"t'es bien obligé de faire une requête sql pour faire diminuer le nombre
de parties restantes et pour remettre 10 parties idem, pour les mettre
à minuit t'as besoin d'un cron (et pas d'un visiteur supposé visiter le
site à minuit...)"



Bon je vais donner un exemple pour illustrer ma pensée :

table membres :

- id

- nom

etc...



table parties :

- id

- id_membre

- date

etc....



1/ Un membre fait une partie, ça entre une nouvelle entrée dans la table parties avec son id et la date (NOW())

2/ Combien de parties il a faites aujourd'hui?

$query = ' SELECT count(*) as total FROM parties WHERE date >
\''.date("Y:m:d",time()).' 00:00:00\' AND id_membre=\''.$_GET['id'].'\'
';

3/ Combien de parties il lui reste : 10 - résultat de la requête précédente.

4/ La personne veut faire une partie, on vérifie si la requête précédente renvois un nombre inférieur à 10



Je ne vois pas l'utilité d'un Cron pour ça... En fait je remet en cause
l'utilité d'un compteur de parties restantes, puisque c'est une donnée
que l'on peut déduire des parties déjà réalisées pour peu que l'on
stock au moins leur date...
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
8 nov. 2005 à 18:07
c'est en gros ce que j'ai dis, mais t'as un peu plus détaillé...

ton idée est pas mal...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

http://coucou747.hopto.org
0
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
8 nov. 2005 à 18:35
Ah oui j'avais po vu ton poste =)



*se sent plus soutenu maintenant :)*
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
8 nov. 2005 à 18:53
" 1/ Un membre fait une partie, ça entre une nouvelle entrée dans la table parties avec son id et la date (NOW())"



une requête d'insertion dans une table séparée, contre un UPDATE et un
champ TINYINT. Perte de place avec ta méthode ;-) après niveau perfs ça
dépend tes index, le nombre d'enregistrements (tu gagneras en insertion
ce que tu perdras en COUNT)



" 3/ Combien de parties il lui reste : 10 - résultat de la requête précédente."



je stockerais ça en session perso donc une requête update, égalité niveau nombre de requêtes.



"4/ La personne veut faire une partie, on vérifie si la requête précédente renvois un nombre inférieur à 10"



et là moi je regarde ça en session, pas besoin de requête.



Ensuite pour remettre à jour les parties à 10 tu fais comment ? il te
faut bien purger les enregistrements d'une table, bref requête
nécessaire (tu vas pas mettre un champ date dans la table, faut bien la
purger un moment donné sinon les perfs vont devenir catastrophiques...)
bref cron.

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
0
Rejoignez-nous