Dudas: SQL y cómo mostrar atributos

Gente, estoy haciendo un ejemplo que se me ocurrió donde básicamente registro libros, usuarios y préstamos a los mismos.

He creado los modelos user, book y lend y quiero hacer lo siguiente:

  • Cuando registro un préstamo, necesito actualizar el estado del libro (state, 1=disponible, 0=prestado) pero no puedo hacerlo mediante consultas sql porque no me selecciona la base de datos. Preferiría saber si existe una solución más fácil antes que andar conectando con la base de datos y consultas sql. Además esto debería hacerlo una vez que todos los datos ingresados sean correctos y solo si el estado del libro que quiero prestar es =1.

  • Dentro de la vista del préstamo aparecen los id del libro y del usuario al que se lo presté pero quiero que aparezca el nombre de cada uno. Esto lo tengo solucionado pero me parece que de una forma un poco "incómoda" así que espero que haya otra.

  • En la vista general de todos los libros muestro un botón que dice "Prestar" si state=1 o "Ver detalles" si state=0. Cómo puedo hacer para que al hacer clic en este último botón me redireccione hacia la vista detallada del préstamo perteneciente a ese material?

Espero sus respuestas.

Gracias!

pero no puedo hacerlo mediante consultas sql porque no me selecciona la base de datos???????????? que significa esto?

[b]

[/b]

Además esto debería hacerlo una vez que todos los datos ingresados sean correctos y solo si el estado del libro que quiero prestar es =1.

puedes usar transacciones





$model=ClassName::model()->find($criteria);

$transaction=$model->dbConnection->beginTransaction();

        try

        {

....


            $model->save();

            $transaction->commit();




}

        catch(Exception $e)

        {

                $transaction->rollBack();

}



????

Yo hago algo asi:

en la vista





    echo CHtml::Button('Ver Detalles',array(  'submit'=>'',  'title'=>'Mostrar Detalles', 'params'=>array('command'=>'verDetalles'),  	  ));

</div>



en el controlador





		if(isset($_POST['command']) && $_POST['command']==='verDetalles')

		{

                        $this->redirect(array('verDetalles'));

		}




He solucionado algunas cosas.

Lo de la conexión con la DB era porque estaba poniendo mal los datos en mysql_select_db.

Lo que quise decir en uno de los puntos que no se entendieron por escribir rápido fue:

En el view detallado (view.php) del préstamo tengo lo siguiente:

pero yo quiero mostrar los datos (siguiendo el mismo orden) de la siguiente manera:

Nombre de usuario (atributo name en tbl_users)

Nombre del libro (atributo name en tbl_book)

Fecha del préstamo (atributo beginDate en tbl_lend)

Devuelto (si o no, atributo int returned en tbl_lend)

Cómo puedo hacer para ver esos datos en dicha vista?

Además quise poner en view.php (datos detallados) del modelo user TODOS los préstamos que posee así lo haya devuelto o no, en la consulta sql obtengo bien los datos pero no se como mostrarlos como se ven en el _view.php (dentro del cuadrito azul).

Gracias

Por si a alguien le sirve, a eso último lo solucioné de esta manera:





array(

'name'=>'user',

'label'=>'Usuario',

'value'=>CHtml::encode($model->user->username)

),



Hola miguel, me gustaria saber como hiciste la consulta

Gracias