質問

im yiiに新たに。私の問題は、私が詳細を表示するために必要なすべてのIDを含む配列$hometeamidを持っています。データを取得する方法plz誰かが私を助けてくれる
私は
$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>
.

が機能しない。空白のフィールドが表示されています。

役に立ちましたか?

解決

CDBcriteriaまたはSimple CreateCommandのようなwiith cdbcriteriaまたはSimple CreateCommandを行うのが最善ですが、PhpMyAdmin / Navicate / MySQL Workbenchなどでクエリを手動で確認してください(結果が返されますか?)

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

他のヒント

は、DBの主キーとしてIDを設定した場合は、FindByAttributesを使用しないでください。

例:

$mod = Event::model()->findbyPk($no);
.

cdbcriteria 's addincondition()アレイ内の値に一致する値を持つすべての行を見つけるための方法、例えばこのようなものです。働くべき(テストされていない):

$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.yiframework.com/doc/api/1.1/cdbcriteria

最初にあなたの配列をSQL照会

の条件値として使用されるカンマ区切り文字列にプロセスします。
$idString = implode(', ', $hometeamid);
.

その文字列をSQLクエリでIN句の中に配置します。

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

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

queryAllメソッドを実行した後、結果の配列

として関連する行を受け取ります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top