Systeme de progression pour membre
Posté : 23 déc. 2012, 12:45
Bonjour,
Je rencontre quelques difficultés dans la création de mon systeme de niveau pour mes membres.
Mon système se compose du niveau du membre , d'une barre d'experience et de l'affichage des points à atteindre en dessous de celle ci ( du style 500/1000 ).
Pour mon niveau 1 tous fonctionne ma barre d'experience évolue en fonction de mes actions et mes points en dessous évolue aussi.
Le probleme que je rencontre est lorsque je passe au niveau 2 ...
En effet il faut donc que la barre de progression reparte à zéro , et que mon maximum de point ( correspond a 1000 dans l'exemple ci dessus ) s'incremente de 1.5.
Le probleme est donc que lorsque je passe au niveau 2 ma barre de progression n'evolue plus et mon systeme de point non plus, ma valeur max s'increment bien de 1.5 mais ensuite si je fais encore une fois depasser mon nombre de points par rapport au points maximum pour passer au niveau 3 il ne s'incremente plus.
La y'a un truc qui m'échappe .
Ma variable $experienceMax de base vaut 100 , je passe au niveau suivant donc ça fait 100*1.5=150 ça m'affiche bien 150 mais dans la BDD il est affiché 100, je pense que c'est pour ça que du coup après mon if n'incremente plus ma variable $experienceMax.
Je mets un lien qui explique en image à quoi correspond chaque variable :
http://imageshack.us/photo/my-images/27/sdzm.jpg/
Je rencontre quelques difficultés dans la création de mon systeme de niveau pour mes membres.
Mon système se compose du niveau du membre , d'une barre d'experience et de l'affichage des points à atteindre en dessous de celle ci ( du style 500/1000 ).
Pour mon niveau 1 tous fonctionne ma barre d'experience évolue en fonction de mes actions et mes points en dessous évolue aussi.
Le probleme que je rencontre est lorsque je passe au niveau 2 ...
En effet il faut donc que la barre de progression reparte à zéro , et que mon maximum de point ( correspond a 1000 dans l'exemple ci dessus ) s'incremente de 1.5.
Le probleme est donc que lorsque je passe au niveau 2 ma barre de progression n'evolue plus et mon systeme de point non plus, ma valeur max s'increment bien de 1.5 mais ensuite si je fais encore une fois depasser mon nombre de points par rapport au points maximum pour passer au niveau 3 il ne s'incremente plus.
<?php
session_start();
if(empty($_SESSION['membre']))
{
header('Location: index.php');
}
$nom = $_SESSION['membre'];
require("php/connection.php");
$req = $bdd->prepare('SELECT * FROM membre WHERE login=:login');
$req->execute(array('login'=>$_SESSION['membre']));
$data = $req->fetch();
$req->closeCursor();
$experience = $data['experience'];
$experienceMax = $data['experienceMax'];
$niveau = $data['niveau'];
$barreExperience = (($experience/$experienceMax)*100);
if(!empty($_POST['xp']))
{
$experience = $experience+20;
$req = $bdd->prepare('UPDATE membre SET experience=:experience WHERE login=:login');
$req->execute(array('experience'=>$experience,'login'=>$_SESSION['membre']));
$req->closeCursor();
}
if($experience>=$experienceMax)
{
$experienceMax *= 1.5;
$req = $bdd->prepare('UPDATE membre SET experienceMax=:experienceMax WHERE login=:login');
$req->execute(array('experienceMax'=>$experienceMax,'login'=>$_SESSION['membre']));
$req->closeCursor();
}
if($barreExperience>=100)
{
$barreExperience = 10;
}
?>
Par contre quand je fais l'UPDATE pour la variable $experienceMax dans mon if($experience>=$experienceMax) ma variable n'est pas stockée du coup dans la BDD, je ne comprends pas c'est le même code en changeant juste les variable que dans le if du dessus qui dit si je clique sur POST lors alors j'incrémente mon expérience...La y'a un truc qui m'échappe .
Ma variable $experienceMax de base vaut 100 , je passe au niveau suivant donc ça fait 100*1.5=150 ça m'affiche bien 150 mais dans la BDD il est affiché 100, je pense que c'est pour ça que du coup après mon if n'incremente plus ma variable $experienceMax.
Je mets un lien qui explique en image à quoi correspond chaque variable :
http://imageshack.us/photo/my-images/27/sdzm.jpg/