Arreter une boucle for sur chaque element
Posté : 19 nov. 2015, 17:03
Bonjour à tous,
Je suis en train de créer un arbre binaire en php et mes données sont dans une bdd.
Le principe c est que chaque noeud comporte un id, une question, une réponse, id_left, id_right. Je possède aussi deux boutons "oui" et "non" et je voudrais qu'a chaque click, je descende d'un cran dans l'arbre.
Voila comment j'ai fait
Ce bout de code m'affiche bien les élements mais il m'affiche TOUT les élements d'un coup. Résultat, je me retrouve au feuille de l'arbre en 1 click.
Comment je peut faire pour qu il me pose chaque question une par une et que descende seulement d'un cran dans l'arbre ?
Merci
Je suis en train de créer un arbre binaire en php et mes données sont dans une bdd.
Le principe c est que chaque noeud comporte un id, une question, une réponse, id_left, id_right. Je possède aussi deux boutons "oui" et "non" et je voudrais qu'a chaque click, je descende d'un cran dans l'arbre.
Voila comment j'ai fait
Code : Tout sélectionner
//calcule le nombre d'element pour ma boucle
$counting = $db->query('SELECT * FROM node where questions IS NOT NULL');
$count = $counting->rowCount();
for( $i = 0; $i < $count; $i++ ) {
// si i égale 0, nous venons juste de rentrer dans la boucle donc j'initialise les élements
if($i ==0){
$select = $db->query('SELECT * FROM node where id=1');
$nodes = $select->fetch();
$current_id = $nodes->id;
$current_id_left = $nodes->id_left_node_children;
$current_id_right = $nodes->id_right_node_children;
$current_question = $nodes->questions;
echo $current_question;
}
if(isset($_POST['yes'])){
$select = $db->prepare('SELECT * FROM node where id=:id');
$select->bindParam(':id', $current_id_left);
$select->execute();
$nodes = $select->fetch();
$current_id_left = $nodes->id_left_node_children;
$current_id_right = $nodes->id_right_node_children;
$current_question = $nodes->questions;
echo $current_question;
}
if(isset($_POST['no'])){
$select = $db->prepare('SELECT * FROM node where id=:id');
$select->bindParam(':id', $current_id_right);
$select->execute();
$nodes = $select->fetch();
$current_id_left = $nodes->id_left_node_children;
$current_id_right = $nodes->id_right_node_children;
$current_question = $nodes->questions;
}
if($nodes->questions == ""){
echo "reponse " . $nodes->responses;
die();
}
}
Comment je peut faire pour qu il me pose chaque question une par une et que descende seulement d'un cran dans l'arbre ?
Merci