[se mueve a bugs] model()->count(CDbCriteria)

[EDIT]

se mueve a

http://www.yiiframework.com/forum/index.php?/topic/5504-countcdbcriteria-with-distinct-and-select-params/


Hola

no se si es un bug o algo por el estilo, les cuento lo que me pasa

primero el codigo:




                // pruebas

                $columnas=array();

                $columnas[]='idProfesional';

                $columnas[]='estado';

                $criteria->select=$columnas;

                $criteria->distinct=true;

                $cantidad=Rp_profesionales::model()->count($criteria);

                Yii::log('ejecuto el count', 'trace');

                Yii::log($columnas[0], 'trace');

                Yii::log($columnas[1], 'trace');

                // pruebas 



y el log

ahora

lo que yo esperaba es




SELECT COUNT(distinct idProfesional,estado) FROM `Rp_profesionales` WHERE Rp_profesionales.estado like :estado




es un bug?

saludos

No se cual es el verdadero sentido de lo que hiciste…

Igualmente, no lo haria así…

Fijate de usarlo así:





MyRecord::model()->countBySql("SELECT COUNT(distinct idProfesional,estado) FROM `Rp_profesionales` WHERE Rp_profesionales.estado like :estado", array(':estado'=>$estado));




Salduos

Hola Sebas

tengo una pagina "dinamica", donde selecciono que columnas quiero ver

y tambien le pongo condiciones a esas columnas

uso distinct porque segun las columnas que se seleccionan puede haber datos duplicados

ejemplo

una tabla con dos registros

registro1

           columna 1 = 1


           columna 2 = 2

registro2

           columna 1 = 1


           columna 2 = 3

si solo quiero mostrar la columna 1, deberia mostrarme 1 solo registro con el dato "1"

el count lo necesito para el pager

hacer a mano la consulta es una opcion, pero creo que el framework debería manejarlo

ya que le estoy pasando el criterio

y el criterio va con el distinct y las columnas en cuestion

si fuera un bug, podria ponerse en /moverse a

http://www.yiiframew…11-bug-reports/

Agregalo como ticket porque es un error, pero la solución que qiang va a plantear es sacar el distinct en el count ya que tampoco toma en cuenta las columnas que vos pedís en la consulta…

Lo que yo haría es probar si funciona con un group by y sin el distinct…

Saludos,

gracias Sebas

ya puse el post en el foro de bugs

probe contando la cantidad de elementos del query y funcionó








               // pruebas

                $columnas=array();

                $columnas[]='idProfesional';

                $columnas[]='estado';

                $criteria->select=$columnas;

                $criteria->distinct=true;

                

                $cantidad=count(Rp_profesionales::model()->findAll($criteria));


                Yii::log('ejecuto el count', 'trace');

                Yii::log($columnas[0], 'trace');

                Yii::log($columnas[1], 'trace');

                // pruebas 


......

        $pages=new CPagination($cantidad);

        $pages->pageSize=self::PAGE_SIZE;

        $pages->applyLimit($criteria);