Bonjour,
Voila je rencontre un problème depuis plusieurs jours, et c'est pour cela que je sollicite votre aide. En espérant que vous pourriez m'aider ou bien me mettre sur la bonne voie.
En fait voila je vais essayer d'être le plus clair possible,
Dans ma table thème:
-id
-Nom des thèmes,
Niveau qui vont de 1 à 4.
Désolé de la longueur de l'explication j'ai essayé d'être le plus claire possible tout en espérant que vous aurez compris ce que je voulais faire.
Merci d'avance!!!
j'aimerai bien afficher les thèmes en fonction du niveau je m'explique,
J'ai un model Thème qui récupère aléatoirement 2 thèmes aux hasards:
Model Theme:
public function getRandomMash() {
$randomMash =$this->find('first', array(
'order'=>'rand()'));
return $randomMash;
}
}
J'ai essayé de rajouter dans mon model thème cette ligne qui permet d'afficher les thèmes du niveau 1
'conditions' => array('Theme.NIVEAU' => 1)));
Mon controller qui verifie si la reponse est correcte:
public function resultat()
{
$exemple = $this->Reponse->find("all", array(
'fields' => array('Reponse.Reponse'),
'conditions' => array('Reponse.Reponse' => $this->request->data['valeur'])));
if($exemple == true){
$this->Session->setFlash("Correct","flash", array('class' => 'success'));
return $this->redirect(array('controller' => 'Themes', 'action' => 'jeux'));
}else{
$this->Session->setFlash("MAUVAIS CHOIX","flash", array('class' => 'error'));
}
}
Passer au thèmes du niveau suivant
Il prend pas compte des niveaux ou bien je reste bloquer au niveau 1.
ok en fait j'essaie de le mettre dans mon controller Theme sans succès
Controller:
public function jeux() {
/** on récupère deux elements de la table theme au hasard **/
$mash1=$this->Theme->getRandomMash();
$mash2=$this->Theme->getRandomMash();
/** on en sort les ids correspondants **/
$id_mash1=$mash1['Theme']['id'];
$id_mash2=$mash2['Theme']['id'];
$id_level = $mash1['Theme']['NIVEAU'];
$id_level1 = $mash2['Theme']['NIVEAU'];
//Remarque: ces deux id sont bien uniques,
/** on vérifie qu'il s'agit bien de deux themes différents **/
if ($id_mash1==$id_mash2){
//sinon on recharge la page
return $this->redirect(array('action' => 'jeux'));
}
if($id_level == $id_level1)
{
$this->Session->setFlash("true","flash", array('class' => 'success'));
}else{
return $this->redirect(array('action' => 'jeux'));
$this->Session->setFlash("false","flash", array('class' => 'success'));
}
Rajoute la condition sur le niveau
function getRandomByLevel($level){
...
}
Dans ton controller
Stocke le niveau courant dans la session ou passe le niveau dans l'url (suivant ce que tu cherche à faire)
Merci de l'infos je vais essayer,
Mais le problème la première page de mon application doit pour commencer afficher les thèmes du niveau 1
Bonsoir.
Mais le problème la première page de mon application doit pour commencer afficher les thèmes du niveau 1
Il te suffit par exemple de mettre $level
à null
par défaut et tu vérifies si le level est défini tu traites le niveau spécifié, sinon ce sera le niveau 1.
Je ne vois pas où tu bloques pour ce point.