Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 12-11-2007 14:28:21

Geoffrey
Membre
Lieu: 63
Date d'inscription: 12-04-2007
Messages: 140
Site web

[Résolu][Zend_Db][1.0.1] Ordre Select avec jointure

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

 

#2 15-11-2007 10:10:09

Geoffrey
Membre
Lieu: 63
Date d'inscription: 12-04-2007
Messages: 140
Site web

Re: [Résolu][Zend_Db][1.0.1] Ordre Select avec jointure

Personne n'a une petite idée ? J'ai du traiter le résultat pour changer l'ordre des colonnes, et je trouve çà un peu dommage.

Hors ligne

 

#3 15-11-2007 13:50:20

TiTerm
Membre
Date d'inscription: 01-07-2007
Messages: 175

Re: [Résolu][Zend_Db][1.0.1] Ordre Select avec jointure

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

 

#4 15-11-2007 16:27:52

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu][Zend_Db][1.0.1] Ordre Select avec jointure

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

 

#5 16-11-2007 14:05:10

Geoffrey
Membre
Lieu: 63
Date d'inscription: 12-04-2007
Messages: 140
Site web

Re: [Résolu][Zend_Db][1.0.1] Ordre Select avec jointure

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

 

#6 16-11-2007 18:32:51

sekaijin
Membre
Date d'inscription: 17-08-2007
Messages: 1137

Re: [Résolu][Zend_Db][1.0.1] Ordre Select avec jointure

tu peux nommer directement tes valeur dans ton select
$select->from(array('monNom' => 'filedName', .....))
A+JYT

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