Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Pages: 1
Bonjour,
Pour l'une de mes requête, j'utilise des jointures. Jusque-là tout va bien ... Par contre j'aurais besoin de mettre un petit peu d'ordre dans mon select pour éviter d'avoir à le retraiter après.
En requête SQL, je peux faire aisément :
SELECT t1.champ1, t2.champ2, t1.champ3 FROM t1 INNER JOIN t2 USING(id);
et mon résultat est comme il faut.
Par contre en ZF, j'ai ca :
$db->select()
-> from('t1', array('champ1', 'champ3')
-> join('t2', 't1.id=t2.id', array('champ2')
;
Ce qui me ressort le tableau suivant "champ1|champ3|champ2"
Comment faire en sorte que mon tableau soit "champ1|champ2|champ3" ?
Merci
Geoffrey
Dernière modification par Geoffrey (16-11-2007 14:05:28)
Hors ligne
Dans la mesure ou il retourne un tableau associatif, j'ai une peu de mal a comprendre l'intérêt de l'ordre des colonnes...
Sauf si tu te contente de faire un implode directe sur les row, auquel cas, effectivement, ca a une incidence.
Eventuellement, tu peux peut être définir un custom row en dérivant Zend_Db_Table_Row_Abstract dans lequel tu réordonnes tes colonnes.
Hors ligne
oui cette question a déjà été abordé
cela n'as pas de sens c'est comme de dire que les membre d'une classe sont ordonnés.
SI tu as besoin d'un ordre absolument tu donne des noms approprié à tes colonnes (Select toto AS Field5, titi As Field2) et tu fais un ksort sur tes rows lorsque tu les récupère.
mais c'est une des caractéristique de toute base de données il n'y a pas d'ordre dans les champs
même si généralement cela ne varie pas les specs SQL précisent qu'un Select * retourne les colonnes dans l'ordre de son choix et que deux appels successif ne garantissent pas d'avoir le même ordre.
simple parce que cela n'a pas de sens.
A+JYT
Hors ligne
Je ne savais pas que les spécifications SQL ne garantissait pas l'ordre. Sachant celà, je vais donc me conforter dans mon tableau de correspondance pour ce cas là où je ne peux pas appeller les valeurs par leur nom.
Merci de vos réponses
Geoffrey
Hors ligne
tu peux nommer directement tes valeur dans ton select
$select->from(array('monNom' => 'filedName', .....))
A+JYT
Hors ligne
Pages: 1