Bonjour,
Dans un contexte de jeu de gestion en php, je dois mettre à jour les ressources lors du chargement de la page.
Certaines ressources, nécessite d'en avoir une de base pour être produite. Je dois donc incrémenté mon champ de deux manières différentes, en fonction de si le joueur a suffisament de la ressource de base ou non.
Ici, pour le cuir :
Pr_Lasts contient le moment du dernier calcul
Pr_Cprod contient ce que le joueur peut produire en 2 heures
Pr_Ccout contient le coût en peaux de chaque unité de cuir produite
Pr_Sqtt contient la quantité de peaux actuellement en stock (calculé dans une autre requête juste avant)
Pr_Ccdt contient ce que le joueur veut garder comme stock de peau minimale (et donc, arriver à ce nombre la production de cuir s'arrête).
Pr_Cmax contient le nombre d'unité de cuir que le joueur peut stocker
Pr_Cqtt contient la quantité de cuir en stock
Pr_Crst contient la valeur décimale qui n'a pas été ajouté au stock
Je me retrouve avec cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 $tempsps = '(UNIX_TIMESTAMP()-UNIX_TIMESTAMP(Pr_Lasts))' ; UPDATE t_prod SET if ( TRUNCATE ((('.$tempsps.'*Pr_Cprod)+Pr_Crst)/7200,0)*Pr_Ccout>Pr_Sqtt-Pr_Ccdt, if ( Pr_Cqtt + TRUNCATE ((Pr_Sqtt-Pr_Ccdt)/Pr_Ccout,0)>Pr_Cmax, Pr_Cqtt = Pr_Cmax, ( Pr_Cqtt = Pr_Cqtt + TRUNCATE ((Pr_Sqtt-Pr_Ccdt)/Pr_Ccout,0), Pr_Crst = MOD ((Pr_Sqtt-Pr_Ccdt)/Pr_Ccout))), if (Pr_Cqtt + TRUNCATE ((('.$tempsps.'*Pr_Cprod)+Pr_Crst)/7200,0)>Pr_Cmax, Pr_Cqtt = Pr_Cmax, ( Pr_Cqtt = Pr_Cqtt + TRUNCATE ((('.$tempsps.'*Pr_Cprod)+Pr_Crst)/7200,0), Pr_Crst = MOD ((('.$tempsps.'*Pr_Cprod)+Pr_Crst),7200))) ), Pr_Lasts = CURRENT_TIMESTAMP WHERE Pr_ID='.$idc ; $se = mysql_unbuffered_query($sse) or die('Erreur SQL !<br>'.$sse.'<br>'.mysql_error());
Erreur de syntaxe près de 'if ( TRUNCATE ((((UNIX_TIMESTAMP()-UNIX_TIMESTAMP(Pr_Lasts))*Pr_' à la ligne 2
Je me demande si ce n'est pas simplement que je ne peux pas faire un if aussi tôt dans la requête ?
Enfin je sèche un peu, et je ne vois pas quoi ni où corriger... Surtout que la partie mentionnée dans l'erreur me paraît correcte.
Merci d'avance pour votre aide !
Partager