私は次のクエリを持っています:
$count = (SELECT COUNT(*) FROM post GROUP BY ID
HAVING ID NOT IN (SELECT taxiID FROM taxi WHERE userID = '.$userID.' AND value IS NOT NULL)
ORDER BY postID), OBJECT);
カウントにはこれが含まれます:
count = Array ( [0] => stdClass Object ( [COUNT(*)] => 1 ) [1] => stdClass Object ( [COUNT(*)] => 1 ) [2] => stdClass Object ( [COUNT(*)] => 1 ) [3] => stdClass Object ( [COUNT(*)] => 1 ) [4] => stdClass Object ( [COUNT(*)] => 1 ) [5] => stdClass Object ( [COUNT(*)] => 1 ) [6] => stdClass Object ( [COUNT(*)] => 1 ) [7] => stdClass Object ( [COUNT(*)] => 1 ) [8] => stdClass Object ( [COUNT(*)] => 1 ) [9] => stdClass Object ( [COUNT(*)] => 1 ) [10] => stdClass Object ( [COUNT(*)] => 1 ) [11] => stdClass Object ( [COUNT(*)] => 1 ) [12] => stdClass Object ( [COUNT(*)] => 1 ) [13] => stdClass Object ( [COUNT(*)] => 1 ) [14] => stdClass Object ( [COUNT(*)] => 1 ) [15] => stdClass Object ( [COUNT(*)] => 1 ) [16] => stdClass Object ( [COUNT(*)] => 1 ) [17] => stdClass Object ( [COUNT(*)] => 1 ) [18] => stdClass Object ( [COUNT(*)] => 1 ) [19] => stdClass Object ( [COUNT(*)] => 1 )
上記で得られた結果の数を数える必要があります。実は、結果の使い方がわかりません!
私はこのコードを持っていましたが、今は機能しません:
<?php if($count[0]->{'COUNT(*)'} > 10){ ?
echo "Load More";
}else {
echo "Nothing to load";
} ?>
$ countは10を超える必要があり、私のphpはLoad Moreをエコーする必要がありますが、ロードするものは何もエコーしていません。
タクシーのテーブルは次のようになります。
ID taxiID userID value
1 1 1 1
2 1 6 1
3 1 4 0
4 2 1 0
5 2 6 1
6 2 4 0
7 3 6 1
8 3 4 0
投稿テーブルは次のようになります。
ID postID randomNum
1 1 564
2 2 789
3 3 234
4 4 845
5 5 089
$ userIDが1であるとすると、クエリはpostID 1,3,4,5を返します(1は好き、3は好きではなく、ユーザー1は嫌いではない、4、5は誰も好きではない、嫌いではない)。したがって、$ countには4が含まれている必要があります(4つの結果が見つかりました)。
クエリが非効率的である場合、どのようにそれを効率的に適応させるのですか?
最終的に、問題は次のようなことをどのように行うかです。
if ($count > 10) {}