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
Code : Sélectionner tout - Visualiser dans une fenêtre à part $this->_container->rewind();Pourquoi ?
Merci d'avance...
Cécilia.






Répondre avec citation



! Ici j'en ai besoin car je fais des tests unitaires sur une classe, enfin bref... C'est bien embêtant car les méthodes fonctionnent, elles me permettent bien de me déplacer dans mon container, mais elle ne renvoient pas la bonne valeur, c'est étrange... 

Partager