我一直在想這個問題已經有一段時間了,我需要一種方法來在數據庫中添加對評論的回覆,但我不知道如何繼續。用於評論和評論回覆的mysql結構
這是我目前意見表(不說多,但它的一個開始):
CREATE TABLE IF NOT EXISTS `comments` (
`id` int(12) NOT NULL AUTO_INCREMENT,
`comment` text,
`user_id` int(12) DEFAULT NULL,
`topic_id` int(12) NOT NULL,
`ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `user_id` (`user_id`),
KEY `topic_id` (`topic_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=27 ;
這裏是我當前的查詢:
SELECT c.id, c.comment, c.user_id, u.username, u.photo
FROM (comments c)
JOIN users u ON c.user_id = u.id
WHERE c.topic_id = 9
一種選擇是創建一個新表名爲「comment_replies」,但我不確定如果我能夠在一個查詢中選擇所有評論和評論回覆,並且如果我添加一個名爲「回覆」的新列,我不知道如何將它們排序通過每個回覆獲得每條評論。
我很想得到一些關於如何處理這個問題的建議。
編輯:
繼約1條評論添加parent_comment_id導致這種陣列的下方輸入答案,2回覆:
array(2) {
[0]=>
object(stdClass)#17 (7) {
["id"]=>
string(2) "26"
["comment"]=>
string(36) "adding a comment from the admin page"
["user_id"]=>
string(2) "16"
["ts"]=>
string(10) "1249869350"
["username"]=>
string(5) "Admin"
["photo"]=>
string(13) "gravatar2.png"
["reply"]=>
string(23) "There is no admin page!"
}
[1]=>
object(stdClass)#18 (7) {
["id"]=>
string(2) "26"
["comment"]=>
string(36) "adding a comment from the admin page"
["user_id"]=>
string(2) "16"
["ts"]=>
string(10) "1249869350"
["username"]=>
string(5) "Admin"
["photo"]=>
string(13) "gravatar2.png"
["reply"]=>
string(13) "Yes there is!"
}
}
我應該如何處理這個數組與它合作,是否可以將評論與回覆分開?
函數'array_search_key'是什麼? - 它不是一個PHP標準庫函數 – HorusKol 2012-10-14 07:37:33
如何工作分頁? – Mrusful 2016-02-06 19:36:38
哪裏是array_search_key函數?它存在於PHP中嗎? – 2017-01-18 05:42:11