Toutes les X temps

kopierreko Messages postés 139 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 10 juillet 2010 - 9 mai 2008 à 21:14
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 - 13 mai 2008 à 18:26
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

Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
9 mai 2008 à 21:49
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
0
kopierreko Messages postés 139 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 10 juillet 2010
9 mai 2008 à 22:11
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 ^^
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
9 mai 2008 à 22:13
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
0
kopierreko Messages postés 139 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 10 juillet 2010
10 mai 2008 à 08:58
C'est toi qui passe pour un con là ><
0

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

Posez votre question
gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
10 mai 2008 à 10:20
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
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
10 mai 2008 à 11:44
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...
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
10 mai 2008 à 15:30
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
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
11 mai 2008 à 10:09
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.
0
kopierreko Messages postés 139 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 10 juillet 2010
12 mai 2008 à 00:18
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 ^^
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
12 mai 2008 à 03:52
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
0
kopierreko Messages postés 139 Date d'inscription mercredi 12 mars 2008 Statut Membre Dernière intervention 10 juillet 2010
13 mai 2008 à 18:14
mais le problème c'est que je ne m'y connait pas du tout en js ^^
0
nicomilville Messages postés 3472 Date d'inscription lundi 16 juillet 2007 Statut Membre Dernière intervention 28 février 2014 36
13 mai 2008 à 18:26
raison de plus pour apprendre !

a++

Si t'a besoin d'aide, MP !!!
Un forum...
0
Rejoignez-nous