Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
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
A la place du fetchAll: $rowSet=$this->fetchAll();
Fais un fetchPairs: $rowSet=$this->fetchPairs();
Ça devrait être beaucoup mieux.
Hors ligne
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
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
Pages: 1