我有一个保存相关帖子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行)。我错在哪里?
因为我们不知道你的数据集,你应该先试着调试这个:
比较:
count(SiteContent::model()->findAll())
和
count(SiteContent::model()->findAllByPk($ids))
如果结果不一样,你的查询不是你想要它做的。如果两者都不正确,说明你没有正确的数据集。
第二个注意事项,应该使用var_dump而不是print_r进行调试。Print_r将显示布尔值为1或0,而不是它们的实际值