2011-06-08 31 views
3

這是一個很業餘的問題(不評分我失望吧),但我會如何創建一個列MySQL表徵求意見

徵求意見

包含他們被分配到了帖子的ID ?

例如,如果我是張貼在崗位#48一個評論,我將如何設置了在MySQL所以

評論顯示出來的崗位#48,而不是所有的職位?

感謝提前:)

+1

你不能被評級,你是在率1. – 2011-06-08 23:15:35

+1

@ypercube我想成爲有趣的笑聲反正你知道我會如何設置? – 2011-06-08 23:17:03

+0

你的'帖子'表是怎麼樣的? – a1ex07 2011-06-08 23:17:34

回答

2

它是一對多的關係(一篇文章可以有很多評論),所以你會想要一個新的表。

comments_tbl 
- comment_id | int(11) auto_increment 
- post_id  | int(11) (FK to post table) 
- author_id | int(11) (FK to the user table OR author_name) 
- date  | datetime 
- comment  | text 

如果你希望能夠標誌和適中的評論,你可能希望包括一些諸如:

- date_approved | datetime 
- flagged  | int(1) 

你的SQL然後顯示一個帖子會像

mysql_query("SELECT comment_id, author_name, comment FROM comments_tbl WHERE post_id = '$postid' AND date_approved IS NOT NULL AND flagged = '0'"); 

要將註釋添加到數據庫:

mysql_query("INSERT INTO comments (post_id, author_id, date, comment) VALUES ('$postid', '$author_id', '$date', '$comment'); 
+0

這正是我所期待的。謝謝 – 2011-06-08 23:30:37

+2

沒問題,剛纔注意到上面關於添加到表中的註釋,包括一個演示INSERT ..請記住在使用'mysql_real_escape_string'插入之前清理變量,或者更好地使用預編譯語句,如'pdo'和'mysqli' – lethalMango 2011-06-08 23:34:04

6

你不創建註釋的,而是一個新的

簡單,

table Post 
id, 
content 

table Comment 
id, 
content, 
post_id 

哪裏POST_ID是該職位的id的參考。

+0

我知道,但我將如何能夠顯示意見,以特定的職位,它的目的是? – 2011-06-08 23:22:56

+1

@Mohamed Yusuf。那麼,這取決於你做了什麼。如果你有一個特定的帖子,你可以從評論處選擇* WHERE post_id ='帖子ID' – joakimdahlstrom 2011-06-08 23:27:09

+0

可以說他們在帖子#50的頁面上。我怎麼能讓用戶發表評論,只發布50 – 2011-06-08 23:29:35

0

首先,你需要在PHP代碼做的是在註釋被分配到(例如$postId。然後,你可以插入註釋成這樣表somewhow後的變量ID存儲(我不是寫字檯的結構,希望你能看到它從查詢):

mysql_query("INSERT INTO comments (id_post, text) VALUES ('".$postId."', 'Text of the comment'"); 

當你要選擇它,您將使用此查詢:

mysql_query("SELECT text FROM comments WHERE id_post = '".$postId."'"); 

順便說一句,在id_post列CAL導致外鍵有應該爲它定義索引。

+0

非常感謝你@詹姆斯 – 2011-06-08 23:23:15

0

如果您有關於您的帖子的表格,您將需要一張新表格供您評論。要將評論與帖子相關聯,只需在評論表中創建一個post_id列。

comments 
- comment_id int(8) Auto_Increment 
- post_id int(8) 
- comment_author varchar(255) 
- comment_content text() 

post_id應該是您的評論中關聯後,每個評論得到它自己排在該表中的ID。如果您的作者可以通過更好的ID進行關聯,只需將varchar(255)更改爲int(8)或其他與您設計相符的內容即可。

0

你需要像

CREATE TABLE `comments` (id int unsigned not null auto_increment PRIMARY KEY, 
post_id int unsigned not NULL, 
// other fields, post_date, post_text, etc 
FOREIGN KEY (post_id) REFERENCES posts(id) ON DELETE CASCADE ON UPDATE CASCADE) 

注:FOREIGN KEYINNODB引擎支持,所以如果你的表是MyISAM,你不需要它。 post_id必須與posts中的主鍵具有相同的類型 - 我假定post.id是無符號整數。