Como ejecutar un SQL

Hola espero que estén bien, disculpen la pregunta, es que ando batallando demasiado con un SQL, o no sé si exista una manera de hacerlo mas sencillo, lo que ando realizando es que tengo mi tabla de Modulo_Detalles donde tengo los siguientes datos.




ID ------ ID_PERFIL ------- ID_MODULO

1  ------     1     -------     1

2  ------     1     -------     2

3  ------     2     -------     1



Los perfiles son los usuarios entonces pretendo obtener que cuando yo presione en el GRID el botón actualizar o update como le digan, me obtenga por decir ID_PERFIL->1 le corresponden tales modulos ID_MODULO->1,2 y nada mas me esta obteniendo ID_PERFIL->1 ID_MODULO->1 y no me regresa el otro valor en ID_PERFIL es un combo, en ID_MODULO es un check:

Código del combo




echo $form->dropDownList($model,'id_perfil',CHtml::listData(Perfiles::model()->findAll(), 'id_perfil','nom_perfil'),array('empty'=>array('0'=>'-- Seleccione --')));



Código del check dinámico




echo $form->checkBoxList($model,'id_modulo', CHtml::listData(Modulos::model()->findAll(),'id_modulo','modulo'));



ya dentro de actionCreate méto los datos en base al arreglo que tal usuario, tal modulo metiendolo las veces que el check se realizo dinámico.

Entonces al guardar no es el problema no se como obtener los datos al actualizar y me llene todos los check seleccionados por eso mismo intente hacer este SQL dentro del método actionUpdate.




//Realizo la conexión a la base de datos.

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

//Indico mi consulta a obtener

$command	 =	$connection->createCommand("Select * From \"Perfiles\" where id_perfil = 1");

//Acciono el query del $command

$dataReader	 =  $command->query();



pero no me muestra los datos al darle un var_dump a $dataReader solo me muestro esto:




object(CDbDataReader)#36 (6) {

  ["_statement":"CDbDataReader":private]=>

  object(PDOStatement)#35 (1) {

    ["queryString"]=>

    string(44) "SELECT * FROM "Modulo_Detalles" where id_perfil = 1"

  }

  ["_closed":"CDbDataReader":private]=>

  bool(false)

  ["_row":"CDbDataReader":private]=>

  NULL

  ["_index":"CDbDataReader":private]=>

  int(-1)

  ["_e":"CComponent":private]=>

  NULL

  ["_m":"CComponent":private]=>

  NULL

}



Ojalá me pueda explicar como obtener el sql mostrandome la información para poder recorrerlo y obtener los datos que necesito… les estaría muy agradecido. Saludos.

Mira este behavior, creo que es lo que necesitas, hay tienes ejemplos:

http://www.yiiframework.com/extension/cadvancedarbehavior/

prueba





//$dataReader=$command->query(); codigo anterior

$dataReader=$command->queryAll(); //con queryAll



Hola gracias por sus respuestas pero la verdad no lo buscaba de esa manera y perdonen la tardanza en contestar… la manera en que solucione esto fue de esta manera:




$user = Yii::app()->db->createCommand()->select('id_perfil, id_modulo')->from('Modulo_Detalles')

->where('id_perfil=:id_perfil',array(':id_perfil'=>$model->id_perfil))->queryAll();



De hecho es una manera fácil de entenderle pero muchas gracias por sus respuestas…