我最近開始評論/回覆部分的應用程序。
我最初的方法是在數據庫中查詢鏈接到特定條目下面的意見: -我怎樣才能結合這些循環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