Consulta Sql

buenas tardes: la sgte consulta me funciona correctamente en phpmyadmin pero no consigo hacerla andar en yii alguien podria decirme que tendria que modificar para que funcione en mi modelo?

                    SELECT l.nombre


		FROM cliente AS p


		INNER JOIN entidad AS e ON p.entidad_id = e.id


		INNER JOIN localidad AS l ON l.id = e.localidad_id

Prueba haciendo algo como lo siguiente


$connection = Yii::app()->db;

$sql = "SELECT l.nombre

    FROM cliente AS p

    INNER JOIN entidad AS e ON p.entidad_id = e.id

    INNER JOIN localidad AS l ON l.id = e.localidad_id";

$command = $connection->createCommand($sql);

$dataReader = $command->query();

$rows = $dataReader->readAll();

No lo probé, pero al menos a mi me sirvió eso con una query que tenía que hacer.

Ojalá te sirva, Saludos!

y si eso lo hago en el modulo de entidad, que tengo q retornar para poder llamar a la función q esta dentro del modulo entidad, dentro del admin del controller?

es decir, esa consulta la hago dentro de una function listaLocalidades dentro del modulo entidad y quiero saber q tengo que retornar

Buenas, yo no entiendo cuál es tu problema, pero voy a tirarme a la piscina.

La función readAll() te devuelve un array con los datos recogidos, entonces como supongo que quieres recuperar los datos, tendrías q hacer por ejemplo:




public function listaLocalidades()

{

 return Yii::app()->db->createCommand('tu consulta')->queryAll();

}



Bastante más simple que el código q nos pasa nkdos.

Un saludo.

Realmente mucho más simple, lo probaré en lo que yo estoy haciendo, para ver que tal. Muchas gracias! creo que me servirá bastante para disminuir las líneas de código.

lagogz, recuerda que también tienes funciones, como por ejemplo "findByPk", ejemplo:


$usuario = Usuario::model()->findByPk($id);

Buenos días.

Por supuesto que sí, pero aquí no estaba utilizando modelos, sino consultas "directas".

Un saludo.

hola, estoy realizando una consulta dentro de una vista, esta me devuelve una cantidad, la cual necesito mostrarla dentro de un html que esta dentro de la vista, ahora, cuando pongo el resultado de la consulta en una variable y la quiero mostrar, el valor que me retona es "Array" y necesito el numero, alguna sugerencia, de como puedo mostrar ese numero?? gracias

estás haciendo un echo?? prueba haciendo un print_r($variable);

print_r te permite mostrar en pantalla un arreglo (Array). También puedes aplicar var_dump($variable); y ver cual es el resultado.

Saludos

epulgaron, prueba este código:




public function listaLocalidades()

{

 return Yii::app()->db->createCommand('tu consulta')->queryScalar();

}

queryAll() devuelve un array asociativo, y queryScalar() devuelve un valor.

Si te lees la API de CDbCommand podrás consultar todos los tipos de consulta q puedes realizar.

Un saludo.