こんにちは、複数のカテゴリに関連付けられている可能性のある php のトピックをリストしています
私のデータベーススキーマは
topics
topic_id
user_id
topic_name
category
category_id
category_name
topic_category (for association)
tc_id
topic_id
category_id
topic_response // 結果用
tr_id
topic_id
response ( given in a form of 5 star rating so its in range of 1-5 always )
user_id
私がしなければならないことは
1st ) 回答に基づいて上位 10 のトピックをリストします。回答の数に基づきます。
やってみた ->
select t.* ,count(tr.response) as votes from topics t , topic_response tr where t.topic_id=tr.topic_id group by tr.topic_id order by votes LIMIT 10
動作していません
2番目) ユーザーにはトピックのリストが表示されます。彼は自分が望むカテゴリを選択できますが、それも複数にすることができます。
例えば
彼が選択した場合 category_id 1,2,3,4
、このカテゴリにリストされているトピックがリストされます。
私はしようとしました
select t.* from topics t ,topic_category tc where tc.topic_id = t.topic_id and category_id IN (1,3,2,4)
// not able to get idea on this i would prefer if i could do this in subquery since i also need to check if the user has already responded to that question .
**3) 場合に備えて、クエリが機能しているとします。
PHP 側から、array(1,2,3,4) のような複数選択ドロップダウンから category_id の配列を取得します。
だから私はこのクエリがカテゴリIDを受け入れるようにする方法を考えていました
category_id IN (1,3,2,4)
in mysql query**の形式で
**のような配列を直接渡すことはできますか
category_id IN ($ids)
配列はどこ$ids
ですか**
私はmysqlの初心者です。助けてください。助けていただければ幸いです:)