EmailArchiveテーブル:
id email_id to from
1 101 uk msm
2 102 uu avc
3 101 rk uk
4 103 xyz abc
5 104 xyz poi
6 104 abc xyz
7 101 xyz abc
今Yiiでemail_id = 101以下のコードを使用しているが、動作しないレコードが必要です。
$id =101;
$criteria = new CDbCriteria();
$criteria->addCondition("email_id < :email_id");
$comments = EmailArchive::model()->findAll($criteria, array(':email_id' => $id,));
試してください:
$id =101;
$comments = EmailArchive::model()->findAll(
array("condition"=>"email_id = $id","order"=>"id"));
OR
$id =101;
$criteria = new CDbCriteria();
$criteria->addCondition("email_id=:email_id");
$criteria->params = array(':email_id' => $id);
$comments = EmailArchive::model()->findAll($criteria);
OR
$Criteria = new CDbCriteria();
$Criteria->condition = "email_id = $id";
$Products = Product::model()->findAll($Criteria);
いくつかの代替を追加するだけで、次のようにすることもできます。
$id =101;
$criteria = new CDbCriteria();
$criteria->condition = "email_id =:email_id";
$criteria->params = array(':email_id' => $id);
$comments = EmailArchive::model()->findAll($criteria);
findAll()
を使用する場合、これを使用することをお勧めします。
$data_email = EmailArchive::model()->findAll(
array(
'condition' => 'email_id = :email_id',
'params' => array(':email_id' => $id)
)
);
Yiiでfindallを使用して取得する別の簡単な方法
$id =101;
$comments = EmailArchive::model()->findAll(array("condition"=>"':email_id'=$id"));
foreach($comments as $comments_1)
{
echo "email:".$comments_1['email_id'];
}
これはあなたの最も安全な方法です:
$id =101;
//$user_id=25;
$criteria=new CDbCriteria;
$criteria->condition="email_id < :email_id";
//$criteria->addCondition("user_id=:user_id");
$criteria->params=array(
':email_id' => $id,
//':user_id' => $user_id,
);
$comments=EmailArchive::model()->findAll($criteria);
コメント行をコメントアウトすると、検索にさらにフィルタリングを追加する方法が得られることに注意してください。
この後、次のようなデータが返されるかどうかを確認することをお勧めします。
if (isset($comments)) { // We found some comments, we can sleep well tonight
// do comments process or whatever
}
$id = 101;
$sql = 'SELECT * FROM ur_tbl t WHERE t.email_id = '. $id;
$email = Yii::app()->db->createCommand($sql)->queryAll();
var_dump($email);
以下のコードを使用してください。これは動作するはずです。
$comments = EmailArchive::find()->where(['email_id' => $id])->all();
$ criteriaを使用する場合は、打撃の使用をお勧めします。
$criteria = new CDbCriteria();
$criteria->compare('email_id', 101);
$comments = EmailArchive::model()->findAll($criteria);