Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonjour,
Je cherche a extraire le nombre de colonnes et leur noms (ou 'key') a partir d'un Rowset, mais je ne trouve pas de méthode qui permet cette opération. Avez vous des pistes à me proposer ?
$myRowset = $myDbAdapter->fetchAll( $mySql, null ); count( $myRowset ) ; // compte le nombre de rows // Mais comment compter le nombre de colonnes et le nom de chaque colonne ?
Cordialement
Alban
Dernière modification par ami (01-06-2007 11:35:38)
Hors ligne
Hello,
je ne sais pas si c'est conseillé, mais tu peux faire ca :
$myRowset = $myDbAdapter->fetchAll($mySql, null); $table = $myRowset->getTable()->info(); $cols = $table['cols'];
et normalement tu retrouvera tes colonnes sous forme de tableau dans $cols
sinon tu peux aussi aller voir du côté de Zend_Db_Adapter_Abstract::describeTable()
bonne chance
Kévin D.
Hors ligne
Merci Kevin, mais ceci ne répond pas mon besoin car ma requête SQL est le résultat entre plusieurs tables, avec des colonnes SUM(table1.col1), AVG(table2.colY) qui ne sont pas présente dans les tables.
Je n'ai pas encore trouvé de solution à mon problème.
Ami
Hors ligne
hum... si je ne m'abuse c'est un tableau de tableaux associatifs... Tu dois pouvoir faire :
$myRowset = $myDbAdapter->fetchAll( $mySql, null ); foreach ($myRowset as $row) { echo count($row)."\n"; }
Là pour chaque ligne, tu as le nombre de colonnes.
Dis nous si ça marche, je n'ai pas testé...
Hors ligne
effectivement, le rowset est un tableau de tableau associatif ...
d'où :
$myRowset = $myDbAdapter->fetchAll( $mySql, null ); $cols = array_keys($myRowset[0]);
et normalement tu devrai récupérer un tableau contenant tes colonnes !
Hors ligne