Le problème c'est que maintenant j'ai une autre erreur: You can't specify target table 'map_monstres' for update in FROM clause
En recherchant je suis tombé la dessus:
vous ne pouvez pas effectuer un UPDATE avec une sous-requête SELECT travaillant sur la même table, pour effectuer cette requête, vous devez créer une table temporaire qui fera la passerelle entre le SELECT et l'UPDATE.
http://www.developpez.net/forums/d494961...om-clause/
Bref cela m'a l'air plus casse bonbec qu'autre chose.
edit: j'ai essayé ceci et ça a l'air de fonctionner:
UPDATE map_monstres INNER JOIN map_membres INNER JOIN monstres
SET vie_monstre = vie_max_monstre,
exp_monstre = exp_max_monstre,
timestamp = '. time() .'
WHERE map_monstres.id_case = map_membres.id_case
AND map_membres.login_membre = "'. $_COOKIE['pseudo'] .'"
AND map_monstres.vie_monstre = 0
AND monstres.id_monstre = map_monstres.id_monstre
AND ('. time() .' - timestamp) >= temps
re-edit: après quelques tests rapides cette requête fonctionne bien, merci à tous les deux pour votre aide
En recherchant je suis tombé la dessus:
vous ne pouvez pas effectuer un UPDATE avec une sous-requête SELECT travaillant sur la même table, pour effectuer cette requête, vous devez créer une table temporaire qui fera la passerelle entre le SELECT et l'UPDATE.
http://www.developpez.net/forums/d494961...om-clause/
Bref cela m'a l'air plus casse bonbec qu'autre chose.
edit: j'ai essayé ceci et ça a l'air de fonctionner:
UPDATE map_monstres INNER JOIN map_membres INNER JOIN monstres
SET vie_monstre = vie_max_monstre,
exp_monstre = exp_max_monstre,
timestamp = '. time() .'
WHERE map_monstres.id_case = map_membres.id_case
AND map_membres.login_membre = "'. $_COOKIE['pseudo'] .'"
AND map_monstres.vie_monstre = 0
AND monstres.id_monstre = map_monstres.id_monstre
AND ('. time() .' - timestamp) >= temps
re-edit: après quelques tests rapides cette requête fonctionne bien, merci à tous les deux pour votre aide