obtener datos de db usando una matriz en yii
-
26-12-2019 - |
Pregunta
Soy nuevo en yii.mi problema es que tengo una matriz $hometeamid
que contiene toda la identificación que necesito para mostrar los detalles.¿Cómo puedo obtener los datos?por favor alguien me ayuda
Yo he tratado $mod = Yii::app()->db->createCommand('SELECT * FROM event WHERE id = 1432201 or id = 1432208')->queryAll();
$no=1432201;
$mod = Event::model()->findByAttributes(array('id' => $no));<br>
pero no funciona.Se muestran campos en blanco.
Solución
Mejor para hacer addincritros Wiith CDBcriteria o Simple Createcommand, pero antes de hacerlo, verifique su consulta en PHPMYAdmin / Navicado / MySQL Workbench, etc. Manualmente (¿está devolviendo el resultado o no?)
$homeTeamIds=['1','2','3','4'];
$criteria = new CDbCriteria;
$criteria->addInCondition('id',$homeTeamIds,'OR'); //matching any of your homeTeadIds
$result = Event::model()->findAll($criteria);
o
$ids = implode(', ', $homeTeamIds);
$sql = "SELECT * FROM event WHERE id IN ($ids)" // like where id IN(1,2,3,4)
$result = Yii::app()->db->createCommand($sql)->queryAll();
Otros consejos
No use FindByATtributes Si configura la ID como la clave principal en su DB.
Ejemplo:
$mod = Event::model()->findbyPk($no);
Puede usar cdbcriteria 's AddinIndiconition () método para encontrar todas las filas con valores que coinciden con los elementos en una matriz, por ejemplo, algo como estedebe funcionar (no probado):
$hometeamid = array(
'1432201',
'1432208',
// ... etc... all the id's you want to show
);
$criteria = new CDbCriteria;
$criteria->addInCondition('id',$hometeamid,'OR');
$mod = Event::model()->findAll($criteria);
Incluso hay un ejemplo que usa Addincondedition en la parte superior de la página de referencia de CDBcriteria: http://www.yiiframework.com/doc/api/1.1/cdbcriteria
Primero procese su matriz en una cadena separada por comas que se usa como valor condicional en la consulta SQL
$idString = implode(', ', $hometeamid);
Luego coloca esa cuerda dentro IN
cláusula en la consulta SQL.
$sql = "SELECT *
FROM event
WHERE id IN ($idString)"
$mod = Yii::app()->db->createCommand($sql)->queryAll();
después de la ejecución de queryAll
método recibirá las filas relacionadas como matriz resultante