Mysql update automatique

itachi2255 Messages postés 17 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 21 octobre 2011 - 6 sept. 2010 à 23:51
itachi2255 Messages postés 17 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 21 octobre 2011 - 8 sept. 2010 à 04:20
Bonjour a tous,
je suis en train de faire un petit jeu de strategie PHP Mysql et le problème et le suivant:
j'ai dans ma base une table joueur qui a des camps (or, bois etc...) chaque joueur peux avoir un certain nombre de mines et en fonction de ce nombre les ressource de chaque joueur vont augmenter. ce que je cherche c'est un solution qui ferai en sorte que meme si le joueur n'est pas connecté des mise se ferons quand meme dans la base.
j'ai pensé a mettre en place un script php qui dès la connexion du joueur, calcule suivant le nbr de mine et la derniere connexion du joueur à la base le nombre des ressource et fais des update dans la base sauf que cette solution me parrait un peu tiré par les cheveux!
je sais pas si jété clair mais si qq à une autre solution à me proposer je serai prenant
merci d'avance de votre aide

5 réponses

cs_47 Messages postés 197 Date d'inscription mardi 20 janvier 2004 Statut Membre Dernière intervention 20 février 2013 1
7 sept. 2010 à 09:42
Bonjour,

regarde du coté de cron (sur *nix) ou at (planificateur de tâches pour win) pour exécuter périodiquement des actions sans intervention de toi ou du joueur.

en espérant t'avoir aidé

bonne journée
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
7 sept. 2010 à 14:02
Salut,

Pourquoi est-ce que la solution te paraît tirée par les cheveux ?
Même des calculs complexes ne résistent pas à plusieurs exécutions (qui simulent les intervalles de temps) dans une boucle. Oui, c'est un peu plus long à la première "re-connexion" et ça consomme des ressources, mais ça ne se produit qu'une fois par visite.
Si les joueurs intéragissent entre eux, il suffit de faire les mises à jours de chacun suivant les implications des autres (et inversement... j'espère être clair).

Sinon, effectivement, cron est une bonne solution, qui permet d'exécuter des scripts PHP. Si tu n'as pas accès à ce service chez ton hébergeur (bien qu'il soit en cours de démocratisation chez les hébergeurs sérieux), tu peux jeter un oeil à webcron qui permet de faire ça depuis une interface web tierce.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0
itachi2255 Messages postés 17 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 21 octobre 2011 1
8 sept. 2010 à 01:53
la solution des cron n'est pas celle que je cherche car elle ne fera qu'augmenter inutilement le nombre de requête à exécuter et de tte les façon quand qq va se connecter sur mon site il doit en s'authentifiant lancer une requête de update dans la base afin de lui afficher ses champs (ressource).
pour la solution que j'ai proposé plus haut et qui consiste a faire script qui calcul et fait des update selon la dernière déconnexion de chaque joueur je trouve qu'elle va peut être ralentir ma page index !! à moins qu'il y a une meilleur solution :-)
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
8 sept. 2010 à 03:57
En fait, il n'y a pas vraiment d'autre solution...
Soit tu fais des updates régulièrement, soit tu fait un lot d'updates à la connexion. Je vois pas d'alternative.. Dans le premier cas, il faut utiliser cron ou un équivalent (webcron ?), dans le second, c'est ta solution qui revient à "simuler" des updates à intervalles réguliers en une seule fois...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
0

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

Posez votre question
itachi2255 Messages postés 17 Date d'inscription mercredi 25 août 2010 Statut Membre Dernière intervention 21 octobre 2011 1
8 sept. 2010 à 04:20
oui cava être un peu difficile vu toute les contrainte que j'ai actuellement mais je ne vois pas non plus d'autre alternative!! merci de votre réponse.
0
Rejoignez-nous