我的网站上有一个群聊功能,人们可以通过选择HTML复选框来添加好友,因此一次可以添加多个好友。但是,当我的php脚本将数据插入mysql数据库时,只添加最后一个值。例如,如果用户选择3个朋友,php会用逗号分隔他们的id(因为它将作为数组存储在数据库中);因此它会显示like,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\u id包含当前用户的id。
我已经回显了$userinput变量,它看起来应该是:,1,2,3(添加到mysql时,开始处的逗号与当前用户id分开)。

最佳答案

您正在用这一行覆盖循环中的值

$userinput = ("," . $invite[$i]);

换成这个
$userinput .= ("," . $invite[$i]);

记住在附加到变量之前初始化变量$userinput,以避免undefined variable警告。

09-17 03:13