1

関連する投稿 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行)については確かです。私の間違いはどこですか?

4

1 に答える 1

0

データセットがわからないため、最初にこれをデバッグしてみてください。

比較 :

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

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

結果が同じでない場合、クエリは目的のクエリではありません。どちらも正しくない場合は、適切なデータセットがありません。

2 つ目の注意として、デバッグには print_r の代わりに var_dump を使用する必要があります。Print_r はブール値を実際の値ではなく 1 または 0 として表示します

于 2013-01-08T12:29:14.300 に答える