Yii Framework Forum: [Resuelto] Problemas con query en yii - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

[Resuelto] Problemas con query en yii Error con el resultado Rate Topic: -----

#1 User is offline   rafaelrosales 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 204
  • Joined: 02-October 13
  • Location:Cuba

Posted 28 August 2017 - 11:29 AM

View Postrafaelrosales, on 28 August 2017 - 11:29 AM, said:

Hola a todos los foristas, me esta dando un error al ejecutar una consulta, esta es mi consulta y codigo parcial:

 $query = "select count(est) from tbl_detalles where est= '$cantra';"; 
        	$connection = Yii::app()->db;
        	$command = $connection->createCommand($query);
        	$row=$command->queryRow();
        	$registros =$row['count'];

$cantra esta definida anteriormente
el error que me da es que me dice que count no esta definida, les agradezco por adelantado sus respuestas



Hola a todos los foristas, me esta dando un error al ejecutar una consulta, esta es mi consulta y codigo parcial:

 $query = "select count(est) from tbl_detalles where est= '$cantra';"; 
        	$connection = Yii::app()->db;
        	$command = $connection->createCommand($query);
        	$row=$command->queryRow();
        	$registros =$row['count'];

$cantra esta definida anteriormente
el error que me da es que me dice que count no esta definida, les agradezco por adelantado sus respuestas
0

#2 User is offline   sebas 

  • Advanced Member
  • Yii
  • Group: Yii Dev Team
  • Posts: 512
  • Joined: 28-October 08
  • Location:Buenos Aires, Argentina

Posted 28 August 2017 - 11:43 AM

Hola Fijate de ponerlo así:
[/size]
$query = "select (count(est)) as 'cantidad' from tbl_detalles where est=:cantra"; $params= [':cantra'=>$cantra];                $connection = Yii::app()->db;                $command = $connection->createCommand($query, $params);                $row=$command->queryRow();                $registros =$row['cantidad'];
[size=2]



El cambio de params es por seguridad.


En el array $row no tenés count porque la columna no tiene un alias. el as `count` hace exactamente eso.


Saludos!
KISS
0

#3 User is offline   rafaelrosales 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 204
  • Joined: 02-October 13
  • Location:Cuba

Posted 28 August 2017 - 01:09 PM

View Postsebas, on 28 August 2017 - 11:43 AM, said:

Hola Fijate de ponerlo así:
[/size]
$query = "select (count(est)) as 'cantidad' from tbl_detalles where est=:cantra"; $params= [':cantra'=>$cantra];                $connection = Yii::app()->db;                $command = $connection->createCommand($query, $params);                $row=$command->queryRow();                $registros =$row['cantidad'];
[size=2]


El cambio de params es por seguridad.

En el array $row no tenés count porque la columna no tiene un alias. el as `count` hace exactamente eso.

Saludos!

Hola sebas gracias por responder, lo puse asi y me dio este error:
CDbCommand falló al ejecutar la sentencia SQL: SQLSTATE[HY093]: Invalid parameter number: no parameters were bound. The SQL statement executed was: select count(est) as 'cantidad' from tbl_detalles where est=:cantra.
en esta linea:
$row = $command->queryRow();
no se si tendra algo que ver, pero tengo definida la variable $cantra = $model->Numero; asi, que lo toma del modelo padre.
0

#4 User is offline   lagogz 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 739
  • Joined: 30-November 12
  • Location:Galiza

Posted 31 August 2017 - 04:43 AM

View Postrafaelrosales, on 28 August 2017 - 11:29 AM, said:

Hola a todos los foristas, me esta dando un error al ejecutar una consulta, esta es mi consulta y codigo parcial:

 $query = "select count(est) from tbl_detalles where est= '$cantra';"; 
        	$connection = Yii::app()->db;
        	$command = $connection->createCommand($query);
        	$row=$command->queryRow();
        	$registros =$row['count'];

$cantra esta definida anteriormente
el error que me da es que me dice que count no esta definida, les agradezco por adelantado sus respuestas



Buenas, Rafa.

El problema es que lo que te devuelve la consulta no tiene ninguna columna (índice) que se llame 'count'. Así de simple.

Tú has impreso lo que tiene $row dentro?

Si cambias tu consulta por esta te funcionará (en MySQl funciona):

 $query = "select count(est) count from tbl_detalles where est= '$cantra';"; // Yo en lugar de count le llamaria cuenta, ya que count es una palabra reservada.


Un saludo.
-----------------------------------------------------------------------------------------------
------------------------------- VISITEN FOCUCHASART --------------------------------
-----------------------------------------------------------------------------------------------
0

#5 User is offline   rafaelrosales 

  • Standard Member
  • PipPip
  • Yii
  • Group: Members
  • Posts: 204
  • Joined: 02-October 13
  • Location:Cuba

Posted 31 August 2017 - 10:33 AM

View Postlagogz, on 31 August 2017 - 04:43 AM, said:

Buenas, Rafa.

El problema es que lo que te devuelve la consulta no tiene ninguna columna (índice) que se llame 'count'. Así de simple.

Tú has impreso lo que tiene $row dentro?

Si cambias tu consulta por esta te funcionará (en MySQl funciona):

 $query = "select count(est) count from tbl_detalles where est= '$cantra';"; // Yo en lugar de count le llamaria cuenta, ya que count es una palabra reservada.


Un saludo.

Ok Gracias por responder lagogz, ya habia resuelto, como dijo el amigo migue, lo que pasaba era que le faltaba el alias a la query, lo puse asi
   $query = "select count(est) AS count from tbl_detalles where est= '$cantra';";

y entonces si me coge el valor que referencia abajo
  $registros = $row['count'];

De todas formas gracias
0

#6 User is offline   lagogz 

  • Master Member
  • PipPipPipPip
  • Yii
  • Group: Members
  • Posts: 739
  • Joined: 30-November 12
  • Location:Galiza

Posted 05 September 2017 - 03:09 PM

View Postrafaelrosales, on 31 August 2017 - 10:33 AM, said:

Ok Gracias por responder lagogz, ya habia resuelto, como dijo el amigo migue, lo que pasaba era que le faltaba el alias a la query, lo puse asi
   $query = "select count(est) AS count from tbl_detalles where est= '$cantra';";

y entonces si me coge el valor que referencia abajo
  $registros = $row['count'];

De todas formas gracias


Cierto, no lo había visto.

Un saludo.
-----------------------------------------------------------------------------------------------
------------------------------- VISITEN FOCUCHASART --------------------------------
-----------------------------------------------------------------------------------------------
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users