28-03-2017, 01:24 PM
Perso, je le tenterai sous la forme simple d'un UPDATE population p SET p.moral = p.moral + (SELECT +/-20 ... FROM consommations) de sorte que la subquery SELECT fournisse + ou - 20 en fontion des ressources disponibles (si cette subquery est faisable, j'ai pas trop regardé la logique métier).
Sinon, en restant hors SQL, tu peux déjà changer ton id = $donSelectTroupe en un IN (donSelectTroupe) qui ne fera qu'un UPDATE au lieu de 50. Après, au lieu d'exécuter la query à cet endroit, tu peux stocker la liste de ces IDs et n'exécuter qu'un seul UPDATE ... WHERE IN ($maListeStockee) à la fin de la boucle. Même principe pour l'autre UPDATE (où il te faut alors stocker la liste [id du joueur => [categories]])
Sinon, en restant hors SQL, tu peux déjà changer ton id = $donSelectTroupe en un IN (donSelectTroupe) qui ne fera qu'un UPDATE au lieu de 50. Après, au lieu d'exécuter la query à cet endroit, tu peux stocker la liste de ces IDs et n'exécuter qu'un seul UPDATE ... WHERE IN ($maListeStockee) à la fin de la boucle. Même principe pour l'autre UPDATE (où il te faut alors stocker la liste [id du joueur => [categories]])