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
sebas
(Sebathi)
August 28, 2017, 4:43pm
2
Hola Fijate de ponerlo así:
[size=2]
[/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]
[/size]
[size=2]
[/size]
[size=2]El cambio de params es por seguridad.[/size]
[size=2]
[/size]
[size=2]En el array $row no tenés count porque la columna no tiene un alias. el as count
hace exactamente eso.[/size]
[size=2]
[/size]
[size=2]Saludos![/size]
sebas:
Hola Fijate de ponerlo así:
[size="2"]
[/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]
[/size]
[size="2"]El cambio de params es por seguridad.[/size]
[size="2"]En el array $row no tenés count porque la columna no tiene un alias. el as count
hace exactamente eso.[/size]
[size="2"]Saludos![/size]
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.
lagogz
(Lagocamanho)
August 31, 2017, 9:43am
4
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.
lagogz:
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
lagogz
(Lagocamanho)
September 5, 2017, 8:09pm
6
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.