La funcion actual muestra una lista con los datos de un usuario.
La web es un CMS basado en Yii Framework. Aqui pongo el codigo:
UsuarioController.php
Código
class UsuarioController extends Controller { public function actionAdmin() { if(Yii::app()->authManager->checkAccess('RUsuario', Yii::app()->user->getState("rol"))) { $model=new Usuario('search_propios'); $model->unsetAttributes(); } else throw new CHttpException(401,'No tiene permisos de acceso al recurso URL.'); } }
Models -> Usuario.php
Código
class Usuario extends CActiveRecord { public static function model($className=__CLASS__) { return parent::model($className); } public function tableName() { return 'rc_usuario'; } public function search_propios() { // Warning: Please modify the following code to remove attributes that // should not be searched. $idUsuarioActual = Yii::app()->user->getState('idWeb'); $criteria=new CDbCriteria; $criteria->compare('idUsuario',$this->idUsuario); $criteria->compare('nombre',$this->nombre,true); $criteria->compare('apellidos',$this->apellidos,true); $criteria->compare('email',$this->email,true); $criteria->compare('web',$this->web,true); $criteria->order='idWeb'; } }
Esa lista muestra todos los usuarios, pero necesito que muestre solo unos segun las ids de otra tabla.
La tabla rc_amigo tiene las columnas 'idAmigo' y 'idUsuario'. Necesito que la lista muestre los amigos del usuario conectado, sería algo asi como
Código
Y, por ejemplo, esto sería lo que devuelve la sentencia:
SELECT * FROM rc_amigo WHERE idUsuario=1
Citar
-----------------------
idAmigo|idUsuario
2 | 1
3 | 1
4 | 1
-----------------------
idAmigo|idUsuario
2 | 1
3 | 1
4 | 1
-----------------------
Si, en este caso, el usuario que hay conectado es el 1, necesito que la lista muestre los usuarios 2, 3 y 4 de la tabla rc_usuario.
Código
SELECT * FROM rc_usuario WHERE idUsuario = (SELECT * FROM rc_amigo WHERE idUsuario=1)
Ese 1 tendría que cambiarlo por el 'idUsuario' del login actual...
Mas o menos puedo hacerme una idea de como hacerlo, pero realmente llevo un lio en la cabeza, llevo unas horas probando y no consigo nada... ;(
¿Conoceis alguna manera simple de hacerlo?
Gracias!