[Zend_Db][1.0.1] Ordre Select avec jointure

Eléphanteau du PHP | 26 Messages

15 nov. 2007, 11:56

Bonjour,

Comme dis dans l'objet, j'utilise Zend_Db 1.0.1, et j'ai un petit soucis d'ordre des champs, voici mon problème :


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

Mammouth du PHP | 1511 Messages

15 nov. 2007, 12:29

Question, quel est le problème ? tu récupéres bien les champs que tu voulais ?
En quoi cet ordre peut il géner ton application ?
@+

Eléphanteau du PHP | 26 Messages

15 nov. 2007, 12:52

Tu récupéres bien les champs que tu voulais ?
Oui oui, j'ai tout ce qu'il me faut
En quoi cet ordre peut il géner ton application ?
Tout simplement mon système d'affichage, dans mon cas un pdf, exemple :
$colonnes = array(25, 85, 20);
$entete = array('Champ1', 'Champ2', 'Champ3');
$champs = array_keys($resultat[0]);

for ($i=0 ; $i<count($entete) ; $i++) {
  $pdf->Cell($colonnes[$i], 5, $entete[$i], 1, 0, 'C', 1);
}
$pdf->Ln();

foreach ($resultat as $ligne) {
  for ($i=0 ; $i<count($entete) ; $i++) {
    $pdf->Cell($colonnes[$i], 5, $ligne[$champs[$i]], 1);	
  }
  $pdf->Ln();
}
Je sais, c'est un peu particulier, mais le fait d'avoir mon résultat de requête dans le bon ordre, m'évite de mettre en place une méthode de correspondance.

Mammouth du PHP | 19672 Messages

16 nov. 2007, 17:06

Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: