我最近开始评论/回复部分的应用程序。
我最初的方法是在数据库中查询链接到特定条目下面的意见: -我怎样才能结合这些循环MySQL查询?
$commentquery = "SELECT projects_comments.*, users.user_url, users.display_name
FROM ".$wpdb->prefix."projects_comments projects_comments
LEFT JOIN ".$wpdb->prefix."users users on users.ID=projects_comments.userid
WHERE projectid = '$projectid'
ORDER BY projects_comments.commentid DESC";
我随后开始了foreach
循环用下面的查询中,以便检索的答复:
if($comments) {
foreach ($comments as $c) {
$replyquery = "SELECT project_replies.*, users.user_url, users.display_name
FROM ".$wpdb->prefix."project_replies project_replies
LEFT JOIN ".$wpdb->prefix."users users on users.ID=project_replies.uid
WHERE project_replies.cid = '$c->commentid'
ORDER BY project_replies.id DESC";
}
}
在实践中,这一切都工作正常,但它让我感到这是非常低效的,并且必须有一种方法来检索一个查询中的所有数据。我担心的是,如果在一个页面上有100条评论,我将仅针对评论进行100条查询。
什么是解决这个问题的最佳方法,以及如何组合这些查询以生成一个用于从中提取数据的大对象/数组。
或者,我怎样才能至少防止'查询在循环中'。
谢谢乔纳森......虽然提出的其他解决方案也解决了问题,但我发现你最容易理解的问题,同时仍然将所有内容都保存在单个查询中。非常感谢您的帮助。 – gordyr 2012-02-29 04:42:14