Pbl d'utilisation d'une methode retournant un tableau

Résolu
cs_mael974 Messages postés 108 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 10 mars 2011 - 28 nov. 2006 à 21:39
cs_mael974 Messages postés 108 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 10 mars 2011 - 29 nov. 2006 à 12:25
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

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

Le détail qui tue...
3
Bling 182 Messages postés 510 Date d'inscription lundi 27 novembre 2006 Statut Membre Dernière intervention 5 juillet 2009 3
28 nov. 2006 à 22:18
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 ();
0
cs_mael974 Messages postés 108 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 10 mars 2011
28 nov. 2006 à 22:40
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 <
0
cs_mael974 Messages postés 108 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 10 mars 2011
28 nov. 2006 à 23:13
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 <
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_mael974 Messages postés 108 Date d'inscription jeudi 2 juin 2005 Statut Membre Dernière intervention 10 mars 2011
29 nov. 2006 à 12:25
nickel 1000mercis ...c t exactement ca le pbl !!!!
encore merci
> MaEl <
0
Rejoignez-nous