Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 09-07-2008 18:21:48

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

columnCount()

J'ai une requête assez qui fait intervenir plusieurs tables :

Code:

SELECT `sportifs`.`sportifs_id`, `sportifs`.`sportifs_clubid`, `sportifs`.`sportifs_discipline`, `sportifs`.`sportifs_listedept`, `sportifs`.`sportifs_listeregion`, `personne`.`pers_id`, `personne`.`pers_nom`, `niveaux`.`nsportprat_id`, `niveaux`.`nsportprat_rang`, `niveaux`.`nsportprat_techtypesport_id`, `postes`.`psportprat_id`, `postes`.`psportprat_rang`, `postes`.`psportprat_techtypesport_id` FROM `sportifs`
 INNER JOIN `personne`
 INNER JOIN `niveaux`
 INNER JOIN `postes` WHERE (sportifs_discipline = 44) AND (pers_id = sportifs_id) GROUP BY `sportifs_id`

et si dans mon traitement je fais :

Code:

$sql = $select->__toString();
$this->logger->debug('Requete : '.$sql);
$smt = $this->_db->prepare($select->__toString());
$smt->execute();
$nb =  $smt->columnCount();

La variable $nb contient 13 alors que 37 lignes sont retournées.
Pour avoir la bonne valeur je suis obligé de faire :

Code:

$result = $smt->fetchAll();
$nb =  count($result);

Et là c'est bon, mais j'aurais voulu économiser le fetchAll().

J'ai vu que c'était une anomalie recensée pour DB2, mais qu'en est il de MySql ?

Dernière modification par Jean-Marc Rigade (09-07-2008 18:23:02)

Hors ligne

 

#2 13-07-2008 21:28:27

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: columnCount()

Hello,

C'est pas un "row count" que tu veux plutôt ? Dans ce cas tu fais juste un :

Code:

$smt->count();

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

Hors ligne

 

#3 14-07-2008 12:38:21

Jean-Marc Rigade
Membre
Lieu: Rennes
Date d'inscription: 25-09-2007
Messages: 314

Re: columnCount()

En effet je ne sais pas pourquoi je voulais compter les colonnes, c'est idiot.
Merci de m'avoir mis sur la bonne voie.
En fait la bonne instruction sur un objet PDO est :

Code:

$nb = $smt->rowCount();

Hors ligne

 

#4 14-07-2008 13:08:52

mikaelkael
Administrateur
Lieu: Donges
Date d'inscription: 18-06-2007
Messages: 1176
Site web

Re: columnCount()

Hello,

Je pensais que tu utilisais Zend_Db qui te retournais un Zend_Db_Table_Rowset et dans ce cas, c'est un count.

A+


Less code = less bugs
Contributeur ZF - ZCE - ZFCE - Doc ZF (CHM & PDF) - Vice-trésorier AFUP 2011
Ubuntu 11.04 - ZendServer

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