大佬教程收集整理的这篇文章主要介绍了php-使用MYSQL列出具有最新注释/活动的类别,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个网站,用户可以在其中发布评论,并对每个评论进行分类.我有一个页面,用户可以在其中浏览网站上所有类别的列表,并在其中发布最新的5条评论.
我需要从数据库检索的信息是:
>类别列表
>每个类别中有5条评论
这就是我现在所拥有的(简化为基本的PHP):
echo "<ul>";
$query = MysqL_query("SELECT * FROM categories");
while($result = MysqL_fetch_assoc($query)){
echo "<li><h2>{$result['category_name']}</h2>";
$query_comments = MysqL_query(
"SELECT * FROM comments WHERE ".
"category_id = '{$result['id']}' ".
"ORDER BY created_at DESC LIMIT 5");
while($result_comments = MysqL_fetch_assoc($query_comments)){
echo "{$result_comments['username']} wrote {$result_comments['text']} on {$result_comments['created_at']}<br>";
}
echo "</li>";
}
echo "</ul>";
看起来像这样(假设我的类别是“水果”名称)
Apple Jay wrote blah blah blah - August 5, 2009 Bob wrote hello hello hello - August 5, 2009 Tom wrote super super - August 5, 2009 Edward wrote no no no - August 5, 2009 Kaysie wrote super no! - August 5, 2009 Orange Cassie wrote ye ye ye ye - August 5, 2009 Alfonce wrote whoohoo - August 5, 2009 Arthur wrote love oranges - August 5, 2009 Alice wrote yes yes yes - August 5, 2009 Xavier wrote Lorem ipsum dolor sit amet - August 5, 2009 StrawBerry Chris wrote Lorem ipsum dolor sit amet - August 5, 2009 Hubert wrote Lorem ipsum dolor sit amet - August 5, 2009 Martin wrote Lorem ipsum dolor sit amet - August 5, 2009 Lyon wrote Lorem ipsum dolor sit amet - August 5, 2009 Paris wrote Lorem ipsum dolor sit amet - August 5, 2009 BlueBerry etc...
问题是,如果类别很多,我将遇到性能问题,尤其是如果有很多使用该网站的用户.
更新,我尝试将类别表与评论表一起加入,但是,我没有找到一种方法来限制每个类别的评论数量,因为如果我使用LIMIT 5,它只会限制返回的评论数量.
解决方法:
这样的事情在Postgresql中会很好地工作:
SELECT * FROM categories
LEFT JOIN comments ON categories.id = comments.category_id
WHERE comments.id IS NULL OR
comments.id IN ( SELECT id FROM comments AS a2 WHERE categories.id = a2.category_id ORDER BY id DESC LIMIT 5 )
不幸的是,MysqL在子查询中不支持LIMIT.他挠了挠头,说有一个解决方法,但是听起来不太好.到那时,我认为您也可以使用多个查询.如果是性能问题,则可能是您临时缓存的数据.
对不起,帮不上忙:)
错误的旧答案:尝试在查询中使用LEFT JOIN,左侧带有类别(因此,无论是否有注释,所有类别都会被返回),而右侧是注释表.这会将其简化为一个查询.
以上是大佬教程为你收集整理的php-使用MYSQL列出具有最新注释/活动的类别全部内容,希望文章能够帮你解决php-使用MYSQL列出具有最新注释/活动的类别所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。