0

我是 yii 的新手。我的问题是,我有一个数组$hometeamid,其中包含我需要显示详细信息的所有 id。我怎样才能得到数据。请有人帮助我
,我试过了
$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>

但不工作。显示空白字段。

4

4 回答 4

0

如果您将 id 设置为数据库中的主键,请不要使用 findByAttributes。

例子:

$mod = Event::model()->findbyPk($no);
于 2014-06-05T14:47:39.380 回答
0

首先将您的数组处理为逗号分隔的字符串,该字符串用作sql查询中的条件值

$idString = implode(', ', $hometeamid);

然后将该字符串放在INsql 查询中的子句内。

$sql = "SELECT *
           FROM event
         WHERE id IN ($idString)"

$mod = Yii::app()->db->createCommand($sql)->queryAll();

执行queryAll方法后,您将收到相关行作为结果数组

于 2014-06-05T12:45:21.153 回答
0

您可以使用CDbCriteriaaddInCondition()方法来查找值与数组中的项目匹配的所有行,例如这样的东西应该可以工作(未经测试):

$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);

在 CDbCriteria 参考页面的顶部甚至还有一个使用 addInCondition 的示例:http ://www.yiiframework.com/doc/api/1.1/CDbCriteria

于 2014-06-05T14:50:59.657 回答
0

最好使用 CDbCriteria 或简单的 createCommand 来执行 addInCriteria,但在此之前请手动检查您在 phpmyadmin/navicate/mysql 工作台等上的查询(是否返回结果?)

$homeTeamIds=['1','2','3','4'];
$criteria = new CDbCriteria;
$criteria->addInCondition('id',$homeTeamIds,'OR'); //matching any of your homeTeadIds 
$result = Event::model()->findAll($criteria);

或者

$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();
于 2014-06-05T18:30:35.380 回答