Toutes les X temps

Signaler
Messages postés
139
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2010
-
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
-
Bonjour tout le monde !
Je m'y connait très bien en php mais là j'avoue qu'il me manque une étape ^^
Voilà je voudrait exécuter une requête sql en php toutes les 10 secondes ( par ex )

Voilà ma requête

$newmana = $oldmana+1;
mysql_query("UPDATE game_perso set `mana`='$newmana'");

Merci :)

12 réponses

Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
qui doit effectué cette requete ? ton client ou ton serveur ?
Je crois que tu rêves un peu sur la modélisation ... tu t'y connais en php ? moi je suis moine

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
139
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2010

Tu es moine ? ben temps mieux ^^
Donc je vois qu'il faut TOUT préciser:

j'ai une page nommé mana.php qui doit executer une requête tous les x temps.

Ce que je veux, c'est savoir si:
1- c'est possible
1- quelqu'un connait

Je pense qu'il me faudra un autre langage par dessus le php => javascript ??

Merci !

PS: si c'est pour mettre un msg style [auteur/TECLIS01/403016.aspx Teclis01] , pas la peine, je veux juste savoir si qqun sait ou pas ^^
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
ajax is your way => prototype Objet Ajax => http://www.prototypejs.org/api/ajax/request

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
139
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2010

C'est toi qui passe pour un con là ><
Messages postés
318
Date d'inscription
mardi 27 mai 2003
Statut
Membre
Dernière intervention
11 mars 2010
1
Bonjour,

C'est possible en utilisant javascript et php. Ce que t'explique Teclis01(d'une manière pas très claire) c'est que tu dois effectuer une requête ajax qui appelera ta page php.

Par contre, si ton visiteur désactive le js, ça ne marchera pas.

Grrrrrrrrrrr
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
37
Salut,

oui exactement, ajax peus efectuer une requête en rechargeant la page ou sans recharger la page : voir les modes synchrone et asynchrone !
Ajax peus ne rechager qu'une partie de ta page par exemple un div en utilisant un innerHTML !!!

a++

PS : il y a de l'ambiance ici ! :p

Si t'a besoin d'aide, MP !!!
Un forum...
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
bah disons que la personne veut faire un jeu, et ce jeu ne vivra que lorsque le user sera connecté...
et puis evidement c'est chaque seconde ... donc aucun float ... donc soit 0 soit 1.. Evidement aucun timestamp pour le dernier ajout (quand on bacle on le fait pas à moitié)
Non je crois vraiment qu'il faille un champ en float et un champ pour le timestamp et qu'on augmente virtuellement le mana via du js mais que lors d'une action on fasse l update et la vérification...
Donc ta modélisation est mal faite. Sans parler de la logique de mise en oeuvre.

A bon entendeur...

Ps: on ne dit pas con

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

alors déjà : on se calme. Je ne veux plus voir le même échange sur ce ton dans ce post.
D'un côté, on ne dit pas "con" en effet (ou autre vilain mot du même accabit, ne jouez pas dessus) (sur les mots, j'entends), de l'autre, on explique gentiment : quand on monte un projet, on ne commence pas en même temps, on ne finit pas en même temps, on avance chacun à notre rythme, et puis de toute manière, on n'en arrive pas forcément aux mêmes conclusions. C'est un peu comme ça que la vie fonctionne d'ailleurs...et on n'est pas censés prôner l'homogénéité parfaite des idées, actions, réactions, pensées etc...pour ceux qui ont suivi mon raisonnement, tant mieux, pour les autres : arrêtez de vous chamailler comme des gamins pour rien du tout.
Ensuite, mon point de vue sur la question : "ajax" pose un gros problème dans ce genre de situations; si on a beaucoup de joueurs, on a autant de requêtes. Or, a t on besoin d'autant de requêtes ? Non...on a besoin de mettre à jour x informations, pour n utilisateurs, régulièrement et répétitivement. Et uniquement pour les joueurs actifs, qui plus est (à moins de vouloir faire un monde persistant, auquel cas il ne faut juste pas tenir compte de savoir si les joueurs sont actifs ou non). Et pour ça, pas besoin de faire des requêtes dont la demande provient du client. Des requêtes globales (update mana set mana algo_calcul_nouvelle_valeur (plutôt qu'une variable passée) where actif 1 -ou toute autre condition valable pour le contexte-) iront tout aussi bien, et soulageront le serveur. Parce qu'il vaut mieux un CRON qui lance x requêtes régulièrement sur le serveur DB, que des "ajax" qui lancent x * nbr utilisateurs requêtes sur ces pauvres serveurs web et DB. A moins que vous ayez tous plusieurs serveurs DB et web monstrueux.
Messages postés
139
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2010

Bon, tout d'abord, dsl pour toi [auteur/TECLIS01/403016.aspx Teclis01]mais c'est en fait ta signature qui me gênait ^^

Je pensais que tu le répètais à chaque fois sur tes posts ( y a pas de séparation entre la signature et le message )

Ensuite, pour en revenir au problème;

Pour la requête c'est bnon, calculer la valeur et tout ça, je connais, mais mon problème est de l'ajouter tous les x temps ^^

Voilà si qqun a une idée ^^
Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
Si je m'amusais a écrire ma signature à tous les posts, je ne serais pas sortit de l'auberge.
Bon sans rancune alors. Désolé aussi de m'être emporté je suis un poils tendu ces temps ci

So pour ton probleme c'est pas resolvable comme tu as fait (me semble) Et tu peux me croire vu ce que je fais depuis quelques temps maintenant! Je prend malalam en témoin du boulot que je fais sur un de mes zouzous

Deja ta table doit contenir 2 champs!
1/mana de type float
2/last_time de type integer

last_time contient le timestamp (int) du dernier calcul de mana (ainsi quand le joueur n'est pas connecté il regen son mana lors de sa future reconnexion)
mana contient le nombre de mana qu' a ton user.

La requete a répeter toutes les 10 secondes doit etre au maximum "transparente"
Donc il te faut :
1 js qui ajoute visuellement x mana.
1 js appellé lors de l'utilisation d une action qui apelle un script php pour mettre à jour la vraie mana en bdd ( on evite ainsi ttes les requetes sql ttes les 10 secondes surtt s il s endort devant ) calcule si l'action est possible, fais ou non l'action et met a jour l'interface.

Voilà comment allié resultats et ressources.

PS:evidement lors de la maj effective de la mana, il faut mettre a jour le timestamp.

Il vaut mieux poser une question et passer pour bête que le rester toute sa vie

 Les geeks n'ont pas une case en moins ils commencent juste à compter à partir de zéro
Messages postés
139
Date d'inscription
mercredi 12 mars 2008
Statut
Membre
Dernière intervention
10 juillet 2010

mais le problème c'est que je ne m'y connait pas du tout en js ^^
Messages postés
3472
Date d'inscription
lundi 16 juillet 2007
Statut
Membre
Dernière intervention
28 février 2014
37
raison de plus pour apprendre !

a++

Si t'a besoin d'aide, MP !!!
Un forum...