Bonjour à vous qui voulez m'aider !
Je vous présente mon cas : je développe un site en php5, et j'ai besoin de récupérer les données d'une table de ma bdd. Pour cela, j'utilise le code ci dessous (je vous passe la connexion à la base...) qui fonctionne très bien. J'utilise des RecursiveArrayIterator de la SPL (Ce sont mes ContainerRubriques, qui héritent de RecursiveArrayIterator).
Les données que je récupère sont des rubriques, qui peuvent avoir des sous-rubriques, qui peuvent elles-mêmes avoir des sous-rubriques.
Je répète que ce code fonctionne très bien. Mon souci, c'est qu'après ce code, je veux me positionner au début de mon container, et je fais donc :
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
19
20
21
22
23
24
25
26
27 while (($rubrique = $stmt->fetch(PDO::FETCH_CLASS)) == true) { $this->_container->append($rubrique); //Deuxième niveau : objets "sous-rubriques" $sub_stmt = $this->_db->query('select * from shadow_rubriques where sha_id_rubriques = '.$rubrique->getIdRubrique()); $sub_stmt->setFetchMode(PDO::FETCH_CLASS, 'RubriqueObject'); $this->_sub_container = new ContainerRubriques(); while (($sous_rubrique = $sub_stmt->fetch(PDO::FETCH_CLASS)) == true) { $this->_sub_container->append($sous_rubrique); //Troisième niveau : objets "sous-sous-rubriques" $sub_sub_stmt = $this->_db->query('select * from shadow_rubriques where sha_id_rubriques = '.$sous_rubrique->getIdRubrique()); $sub_sub_stmt->setFetchMode(PDO::FETCH_CLASS, 'RubriqueObject'); $this->_sub_sub_container = new ContainerRubriques(); while (($sous_sous_rubrique = $sub_sub_stmt->fetch(PDO::FETCH_CLASS)) == true) { $this->_sub_sub_container->append($sous_sous_rubrique); } if($this->_sub_sub_container->count() > 0) { $this->_sub_container->append($this->_sub_sub_container); } } if ($this->_sub_container->count() > 0) { $this->_container->append($this->_sub_container); } }
Et c'est là que ça plante ! Cette instruction devrait me renvoyer TRUE ou FALSE, et au lieu de ça, elle me renvoie NULL Pourquoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part $this->_container->rewind();
Merci d'avance...
Cécilia.
Partager