2012-06-29 26 views
0

我試圖做一個MySQL查詢,以不覆蓋它的當前值的格式向數據庫添加信息,而是將其作爲朋友列中的朋友列中的朋友1,朋友2,朋友3 ...添加到數據庫中等將變量添加到數據庫而不替換當前值?

首先,我不能確定,如果INSERT INTO是正確的:

$username = $_SESSION['username']; 

mysql_query("INSERT INTO members (friends) WHERE username = $username 
    VALUES ('$friendtoadd')"); 

我想要做的是有這樣做的兩件事情

1)添加好友中提到,這樣的格式就稍後可以被調用,如果在會話中設置的$ username被激活,那麼發佈在頁面上的結果僅來自th其他用戶包含在他們的朋友列中。

2)如果$ friendtoadd已經存在於他們的朋友列中,那麼它什麼都不做。

+1

你可以給表格模式,你期望插入? – Ruwantha

+0

看看這個。它應該對你有用.http://stackoverflow.com/questions/2761583/appending-data-to-a-mysql-database-field-that-already-has-data-in-it – vijay

回答

4
UPDATE members SET friends = CONCAT_WS(', ', friends, '$friendtoadd') where username = '$username' 

我希望$friendtoadd以及$username通過mysql_real_escape_string

消毒此外,這樣的設計是不是非常好。你應該有一個單獨的朋友表 所以

table friend 
id (auto increment), userID, name) 

then do 
Insert into friend SET userID = $userID, name = '$friendName' 
+0

他們已經過消毒。只是不熟悉concat() – CodingNoob

+2

更好使用'CONCAT_WS()' – diEcho

+1

@diEcho你是對的,最初當我回答我沒有分隔符的問題時。我已更新我的帖子 – Kris

相關問題