我有一個小型的社交網站,允許用戶對帖子發表評論。我可以根據用戶使用SQL添加的朋友顯示記錄。不過,我希望對每篇文章發表的評論直接顯示在帖子下方。用外鍵連接兩個記錄集
帖子表:
all_id(PK), name, comment, time, expand
評論表:
post_id, name, comment, all_id(FK)
我試圖複製了Facebook的功能:評論後,看到右側下方的職位。我曾嘗試使用複雜的SQL連接,但未顯示任何數據。
我有一個小型的社交網站,允許用戶對帖子發表評論。我可以根據用戶使用SQL添加的朋友顯示記錄。不過,我希望對每篇文章發表的評論直接顯示在帖子下方。用外鍵連接兩個記錄集
帖子表:
all_id(PK), name, comment, time, expand
評論表:
post_id, name, comment, all_id(FK)
我試圖複製了Facebook的功能:評論後,看到右側下方的職位。我曾嘗試使用複雜的SQL連接,但未顯示任何數據。
雖然您可以在單個查詢中獲取帖子和所有註釋,但結果集可能無法預見,因此可能會耗盡數據庫,腳本或服務器的內存。但如果你想這樣做,讓我知道,我可以發表一個例子。
或者,您可以使用兩個單獨的查詢。第一個會抓住這個職位,第二個會抓住與該職位有關的所有評論。這裏是一個使用PHP和MySQL的例子:
// Connect to MySQL Database
$db = mysql_connect('my_host', 'my_username', 'my_password');
mysql_select_database('my_database', $db);
// Query for Posts from a specific user.
$grabPost = mysq_query("SELECT all_id, name, comment, time, expand FROM posts WHERE name = 'some_user_name'", $db);
// Iterate over each post
while($post = mysql_fetch_assoc($grabPost)) {
print '<b>' . htmlentities($post['name']) . '</b> - <i>' . $post['time'] . '</i><br />';
print htmlentities($post['comment']);
print '<br />';
// Query for Comments relating to this Post
$grabComments = mysql_query("SELECT post_id, name, comment FROM comments WHERE all_id = " . $post['all_id'], $db);
// Iterate over each comment
while($comment = mysql_fetch_assoc($grabComments)) {
print '<p><b>' . htmlentities($comment['name']) . '</b> Says: ' . htmlentities($comment['comment']) . '</p>';
}
print '<hr />';
}
感謝您回覆@ Joshua Burns ...我使用php mysql –
以上解決方案是否照顧您的問題,或者您是否有興趣收集所有評論與帖子?請記住,可能會炸燬您的數據庫或Web服務器或PHP腳本! –
謝謝你的回覆....我會嘗試一個你給我...會很快回復... –
更少的聊天,更多的事實,請更多的例子。並使用編輯器中的「代碼塊」功能。 –
您嘗試使用的JOIN命令是什麼? –
您使用的是哪種數據庫服務器? PostgreSQL的? MySQL的?微軟MSSQL服務器? SQL Lite?另外,你用什麼語言編程呢?蟒蛇? PHP? Java的?紅寶石? –