我的网站上有群聊功能,人们可以通过选择HTML复选框添加好友,因此可以在一个点添加多个。但是,当我的PHP脚本将数据插入MySQL数据库时,只会添加最后一个值。例如,如果用户选择了3个朋友,PHP会用逗号分隔他们的ID(因为它将作为数组存储在数据库中);所以它会显示为1,2,3。但是,当我插入MySQL时,只有“,3”正在提交。
用于从HTML复制数据的PHP代码复选框:
$invite = $_POST['invite'];
if(empty($invite))
{
//echo("You didn't select any friends.");
}
else
{
$N = count($invite);
//echo("You selected $N friends(s): ");
for($i=0; $i < $N; $i++)
{
$userinput = ("," . $invite[$i]);
}
}
MySQL查询:
$sql = "INSERT INTO group_chat (title, created_date, last_modified, created_by, user_array) VALUES ('$title', now(), now(), '$logOptions_id', '$logOptions_id$userinput')";
$ logOptions_id包含当前用户的ID。
我之前回复了$ userinput变量,它看起来应该是:,1,2,3(开头时的逗号与添加到MySQL时从当前用户ID分开。
答案 0 :(得分:5)
您正在用此行覆盖循环中的值
$userinput = ("," . $invite[$i]);
将其更改为此
$userinput .= ("," . $invite[$i]);
请务必在附加变量$userinput
之前对其进行初始化,以避免undefined variable
警告。
答案 1 :(得分:0)
您可以使用implode
创建逗号分隔的id字符串$userinput = implode(',', $invite); // output as 1,2,3
如果您想向其添加当前用户ID
$userinput = $logOptions_id.','.implode(',', $invite);