2015-06-07 69 views
0

我需要將評論ID列表插入列liked_comments如何將數字列表插入到MySQL表中?

例如,如果用戶喜歡ID爲72,839, 37的評論,則它們將被存儲在那裏。

$id = mysqli_real_escape_string($conn,$_POST['id']); // a number posted using ajax from another file 
$username = mysqli_real_escape_string($conn,$_SESSION['username']); 

if (!empty($_POST) && isset($_SESSION['username'])){ 
     mysqli_query($conn,"UPDATE users SET liked_comments=liked_comments+$id WHERE username='$username'"); 
} 

目前這只是增加的ID,彷彿它們是數字,而不是字符串,但我需要它是71,789,17371 789 173用空格或逗號分隔。添加+' '++','+似乎沒有工作。

+0

你不要!!!!!! – Strawberry

+0

我最喜歡的名單是**'2,3,banana,5,sqrt(49)**。 – spencer7593

回答

2

在MySQL中使用+不能連接,你必須使用concat

$Query = "UPDATE users SET liked_comments=concat(liked_comments, ',', '$id') WHERE username='$username'"; 

而且,而是在列存儲逗號分隔值,你可以評論部分移動到分離表,其中每行包含PostIDUserID,這將是更加整潔和靈活。

0

做到這一點的最佳方法是將數組存儲在數據庫中。例如;如果我們有這樣的數組:

$liked_comments_array = array(71, 789, 173);

你可以把它在陣列中存儲像這樣:當你從數據庫中獲取這個數組

$liked_comments_array = serialize($liked_comments_array); 
// now insert this into the database 

然後,只需反序列化它像這樣:

$liked_array_comments = unserialize($field_from_database);

+0

我不認爲這是很好的解決方案,想想如果OP需要用戶明智的評論,他必須在php中獲得結果並反序列化並比較 –