Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 14-05-2012 12:38:21

enneite
Membre
Date d'inscription: 25-04-2012
Messages: 12

[RESOLU]Retourner un résultat SQL sous la forme d'un tableau assoc

Bonjour,

je voudrais retourner les réslultats d'une requête sous la forme d'un tableau associatif cle/valeur

Mon code fonctionne mais je pense qu'il y a beaucoup plus simple pour obtenir un même résultat
je passe par la méthode fetchAll() puis la méthode toArray() avant d'éffectuer une boucle for

Je pense qu'il y a beaucoup plus simple, mais après avoir cherché dans la doc, je n'ai rien trouvé.
Voici mon code.



class Model_DbTable_SecteursActivite extends Zend_Db_Table
{
    protected $_name = 'secteurs_activite';
    protected $_rowClass = 'Model_Row_SecteurActivite';
       
       public function getDynamicalArray(){
   
    $s = array();
    $champs = array('id_secteur_activite', 'nom_secteur_activite');
   
    $select = $this->select()->from($this, $champs);
   
    $rowSet=$this->fetchAll();
    $t = $rowSet->toArray();
   
    for($i=0;$i<count($t);$i++){
        $s[$t[$i]["nom_secteur_activite"]] = $t[$i]["nom_secteur_activite"];
    }
    return $s ;
   
    }
}

//resultat désiré : quelque chose du genre :


Array
(
    [12] => Alimentation
    [21] => Alimentation
    [25] => Charcuterie
    [36] => Chocolatier
    [38] => Crémerie
)

Dernière modification par enneite (14-05-2012 14:21:09)

Hors ligne

 

#2 14-05-2012 12:54:27

Roromix
Membre
Date d'inscription: 05-12-2011
Messages: 55

Re: [RESOLU]Retourner un résultat SQL sous la forme d'un tableau assoc

A la place du fetchAll: $rowSet=$this->fetchAll();

Fais un fetchPairs: $rowSet=$this->fetchPairs();

Ça devrait être beaucoup mieux.

Hors ligne

 

#3 14-05-2012 14:19:18

enneite
Membre
Date d'inscription: 25-04-2012
Messages: 12

Re: [RESOLU]Retourner un résultat SQL sous la forme d'un tableau assoc

Merci de la réponse.
Alors pour plus de précision, Zend_DbTable n'implémente pas de méthode fetchPairs(), c'est $db qui le fait, du coup, il faut utiliser :

return  $this->getAdapter()->fetchPairs($select);

Hors ligne

 

#4 14-05-2012 14:26:59

Roromix
Membre
Date d'inscription: 05-12-2011
Messages: 55

Re: [RESOLU]Retourner un résultat SQL sous la forme d'un tableau assoc

Ah oui désolé, j'ai oublié de te préciser getAdapter(). Je le fait dans tout mes modèles, à force de faire du copier/coller j'y pense plus.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages