[RPG en PHP] Monter de niveau

Résolu/Fermé
Meta-Dark Messages postés 24 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 1 février 2009 - 18 déc. 2008 à 20:58
Meta-Dark Messages postés 24 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 1 février 2009 - 19 déc. 2008 à 15:46
Bonjour,

encore moi avec un autre problème sur les bras ! Merci de m'aider du mieux que vous pouvez ^^'

Donc voila, mon script de PHP avance pas mal, mais j'ai un léger problème : monter de niveau n'apporte pas une augmentation des caractéristiques que je demande.

<?php
if($xp >= 150 * POW($lvl,2))
{
	$lvl++ ;
	$force = $force * (3 / 2);
	$defense = $defense * (3 / 2);
	$agilite =  $agilite * (3 / 2);
	$intel = $intel * (3 / 2);
	while ($donnees = mysql_fetch_array($resultat))
	{
	$PV = $donnees['PV'];
	$PM = $donnees['PM'];
	}
	$PV = $PV * (3 / 2);
	$PM = $PM * (3 / 2);
	mysql_query("UPDATE Rpaygay SET force='$force' WHERE nom='$nom'");
	mysql_query("UPDATE Rpaygay SET defense='$defense' WHERE nom='$nom'");
	mysql_query("UPDATE Rpaygay SET agilite='$agilite' WHERE nom='$nom'");
	mysql_query("UPDATE Rpaygay SET intel='$intel' WHERE nom='$nom'");
	mysql_query("UPDATE Rpaygay SET PV='$PV' WHERE nom='$nom'");
	mysql_query("UPDATE Rpaygay SET PM='$PM' WHERE nom='$nom'");
	mysql_query("UPDATE Rpaygay SET niveau='$lvl' WHERE nom='$nom'");
	?>
		Félicitations, vous êtes monté au niveau <?php echo $lvl ;
}
?>


Donc, plus haut dans le code de ma page j'avais déja chargé les variables qui servent au combat (force, défense, agilité etc), et j'ai refait une boucle while pour recharger mes variables $PV et $PM (car elles diminuent au cours du combat). Comme vous le voyez quand on monte de niveau ($xp >= 150 * POW($lvl,2)), je multiplie mes variables par 1.5 et je fait un UPDATE pour les enregistrer dans ma BDD.

Voila un exemple concret :

Meta-Dark est niveau 1. Il a 8 force, 6 défense, 4 agilité, 0 intel, 60PV et 10PM.
Il monte de niveau : il a maintenant 8 force, 9 défense, 6 agilité, 0 intel, et les PV sont ceux qu'il me reste a la fin du combat, les PM quant a eux sont de 15.

La défense, l'agilité, et les PM sont correctement augmentés, mais le reste ne suit pas.

J'espère que vous pourrez m'aider car je bloque totalement. Je vais essayer des trucs et re-posterais si je trouve la solution (tout en la donnant, ça pourra servir =°)

Merci d'avance !
A voir également:

2 réponses

Meta-Dark Messages postés 24 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 1 février 2009 10
19 déc. 2008 à 13:21
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'force=12, defense=9, agilite=6, intel=0, PV=90, PM=15, niveau=2 WHERE nom=Meta-D' at line 1

mysql_query("UPDATE Rpaygay SET force='$force', defense='$defense', agilite='$agilite', intel='$intel', PV='$PV', PM='$PM', niveau='$lvl' WHERE nom='$nom'") or die (mysql_error());


Voila d'ou vient le problème apparemment, personne ?
1
force est un mot réservé en mysql. entoure le d'accents graves et ça ira mieux :
`force`
Pour éviter ce genre de problème, entoure toujours les noms de champs et de tables de ``
0
Meta-Dark Messages postés 24 Date d'inscription jeudi 11 décembre 2008 Statut Membre Dernière intervention 1 février 2009 10
19 déc. 2008 à 15:46
Merci beaucoup, ça marche !

j'écouterais ton conseil, encore merci
0