31-03-2008, 10:23 AM
(Modification du message : 13-07-2008, 02:20 AM par Sephi-Chan.)
Bonjour tout le monde!
J'ai un jeu en php mysql qui fonctionne au tour par tour. Toutes les 30min je mets donc à jour toutes les ressources de chaque joueur dans des boucles. Le problème réside dans la boucle qui mets à jour le mana. Chaque joueur possède un héros, chaque niveau de héros incrémente de 1 le mana reçus par tour. Le mana et le niveau du héros ne sont pas dans la même table, mais le problème ne dois pas être la (4,6 secondes pour uniquement le select et echo ligne par ligne)... A part contre si je change l'echo avec le vrai update, tout devient trop lent (104 secondes pour updater le mana de 4600 joueurs).
Voici ma boucle:
$request = 'SELECT ress.uid, ress.mana, hero.niveau FROM ress, hero where ress.uid = hero.uid';
$request2 = mysql_query($request);
while($infos = mysql_fetch_assoc($request2)) {
$NewMana = $infos['mana'] + $infos['niveau'];
mysql_query('UPDATE ress SET mana='.$NewMana.' WHERE uid='.$infos['uid']);
}
Y a t'il un moyen d'améliorer cette boucle et la rendre plus rapide?? Un grand merci d'avance, zepp'
J'ai un jeu en php mysql qui fonctionne au tour par tour. Toutes les 30min je mets donc à jour toutes les ressources de chaque joueur dans des boucles. Le problème réside dans la boucle qui mets à jour le mana. Chaque joueur possède un héros, chaque niveau de héros incrémente de 1 le mana reçus par tour. Le mana et le niveau du héros ne sont pas dans la même table, mais le problème ne dois pas être la (4,6 secondes pour uniquement le select et echo ligne par ligne)... A part contre si je change l'echo avec le vrai update, tout devient trop lent (104 secondes pour updater le mana de 4600 joueurs).
Voici ma boucle:
$request = 'SELECT ress.uid, ress.mana, hero.niveau FROM ress, hero where ress.uid = hero.uid';
$request2 = mysql_query($request);
while($infos = mysql_fetch_assoc($request2)) {
$NewMana = $infos['mana'] + $infos['niveau'];
mysql_query('UPDATE ress SET mana='.$NewMana.' WHERE uid='.$infos['uid']);
}
Y a t'il un moyen d'améliorer cette boucle et la rendre plus rapide?? Un grand merci d'avance, zepp'