我有一长串项。即:
$query = mysql_query("SELECT i.id
ORDER by i.id DESC LIMIT 0, 200");
while($row = mysql_fetch_array($query)){ $num_row++;
}
输出:
[项目1] [项目2] [项目3] ...... [项目200]
这就是事情。如果用户 喜欢该项目,我需要检查每个项目。我是否必须为第一个项目查询的每一行启动一个额外的查询?我们正在讨论200个查询...是否可以将此查询加入到第一个查询中?
我正在考虑如此构建“like”表:
id, item_ref, user_id
----------------------
1, 1, 5
1, 5, 5
1, 3, 5
以user_id 5登录时应显示:
[项目1喜欢] [项目2] [项目3喜欢] [项目4] [项目5喜欢] ... [项目200]
任何提示?
非常感谢!
答案 0 :(得分:1)
您可以加入相似的表格并使用它来查看特定用户是否有类似内容。你错过了一些你的查询,但是(假设你使用你提到的那样的表):
SELECT i.id, l.id IS NOT NULL AS liked
FROM item i
LEFT JOIN likes l ON (i.id = l.item_ref AND l.user_id = YOURUSERIDHERE)
ORDER by i.id DESC LIMIT 0, 200
结果中的 liked
是给定用户是否有类似内容。