Pbl d'utilisation d'une methode retournant un tableau [Résolu]

Signaler
Messages postés
112
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011
-
Messages postés
112
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011
-
Bonjour jai une classe qui contient une methode qui retourne une liste d'enregistrement d'une table dans un tableau. Lorsque je l'utilise je n'obtient que le dernier element du tableau !!! voila mon code

la classe qui interroge est retourne un tableau
-----------------
<?php
class Question {
 
private $libelle=array();
private $row;

  public function __construct() {}

//fonction qui retorune la liste d'enregistrement ds un tableau
public function famille_question(){
include './connexion.php5';
 $query ="select id_famille,libelle_famille from famille_de_question";
 $sql = $db->execute($query);
 $nb = $db->nb_rows();
 $this->row=$nb;
 $tab=array();
        for($i=0;$i<$nb;$i++){
        $this->libelle[i] = $db->return_field($i, 'libelle_famille');
    //    echo $this->libelle[i]; =>rempli corectement le tableau
   
    }
return $this->libelle;
 }
 
public function getRow(){
return $this->row;
  }
}
?>

La page php qui appel cette classe
-------------

<?php
$question=new Question();
$lib=$question->famille_question();
$nb=$question->getRow();

for($i=0;$i<$nb;$i++){
echo $lib[i]. '  ';
?>

cela maffiche n fois le dernier element de l'enregistrement !!!! Jai essayer avec un foreach ....rien a faire...pouvez vs maider svp !!! merci

> MaEl <

5 réponses

Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
2
Quand tu remplis ton tableau dans la boucle for, utilise $this->libelle[$i], ça devrait marcher mieux.

Le détail qui tue...
Messages postés
510
Date d'inscription
lundi 27 novembre 2006
Statut
Membre
Dernière intervention
5 juillet 2009
2
Je comprends pas à quoi correspond ton $tab = array(); dans ton code, tu ne l'utilises null part ailleurs...

Dans ton for, tu peux faire un $this->libelle[] =

$db->return_field($i, 'libelle_famille');

ça ajoutera automatiquement les champs à la fin de ton tableau (bien que je ne pense pas que cela résolve le problème).
Par contre, dans ton code appelant, tu peux essayer de faire $lib array (); et ensuite $lib $question->famille_question ();
Messages postés
112
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011

oui le $tab je men sert pas c t juste un teste que jai oublié denlever !!!!
pour le $lib)array() je lavé deja fais aussi ms ca ne change rien au pbl car on na guere besoin de declarer le type des variable en php ! :-s
je ne vois vrmt pas ce qui cloche ds mon code

> MaEl <
Messages postés
112
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011

j'ai trouvé l'origine du pbl ms je sait pas comment y remedier !!
Qd je fais un:

echo sizeof($lib);
cela me retourne 1 !!!!!! Au faite mon tableau n'est pas rempli comme il se doit , juste le dernier element est renvoyé :-s ainsi mon array n'a q'un seul element !!!
help mee please thx ;)

> MaEl <
Messages postés
112
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
10 mars 2011

nickel 1000mercis ...c t exactement ca le pbl !!!!
encore merci
> MaEl <