如何使用findAllByPk()读取数组中包含ID的行

时间:2012-12-31 14:10:24

标签: php yii

我有一张表格可以保存相关的帖子ID。

$criteria = new CDbCriteria;
$criteria -> select = 'content_2';
$criteria -> condition = 'content_1=:c';
$criteria -> limit = $count;
$criteria -> params = array(':c' => $id);
$posts_id = SiteContentRelated::model() -> findAll($criteria);

$ids = array();

foreach ($posts_id as $value) {
    $ids[] = intval($value['content_2']);
}

$posts = SiteContent::model()->findAllByPk($ids);

echo '<pre style="direction:ltr;">';
print_r(count($posts));
echo "</pre>";
die();

结果:

1

我确信表中的行数(3行)。 我的错误在哪里?

1 个答案:

答案 0 :(得分:0)

由于我们不知道你的数据集,你应该先尝试调试它:

比较:

count(SiteContent::model()->findAll())

count(SiteContent::model()->findAllByPk($ids))

如果结果不一样,那么您的查询就不是您想要的了。如果它们都不正确,那么你就没有合适的数据集。

在第二个注释中,您应该使用var_dump而不是print_r进行调试。 Print_r将布尔显示为1或0,而不是它们的实际值