将多个值从表单插入到数组
Posted
技术标签:
【中文标题】将多个值从表单插入到数组【英文标题】:Inserting multiple values from a form to an array 【发布时间】:2020-05-10 07:28:37 【问题描述】:我有一个包含多个字段的表单:
<input type="text" name="name[]" value="">
<input type="text" name="name[]" value="">
<input type="text" name="name[]" value="">
我正在尝试将该表单和这些值插入到数据库中的数组中:
<?php
$i = 0;
foreach ($_POST as $val)
$name = $_POST['name'][$i];
mysqli_query("INSERT INTO main (name) VALUES ('$name')");
$i++;
?>
这给了我错误“mysqli_query() 需要至少 2 个参数,1 个给定”
我也尝试将查询替换为:
mysqli_query($connect, "UPDATE main
SET name='$name'
WHERE id=2");
但我认为这实际上并不是将 3 个 name 值发布到数组中。相反,它只发布一个。
我尝试使用在此网站上找到的多个代码,但我仍然无法弄清楚!
【问题讨论】:
您确实需要将$connect
添加到您对mysqli_query
的第一次调用中,但为什么您将WHERE
条件添加到您的第二次调用中?
@Nick 我有两行 id=1 和 id=2。我认为如果我要指定一个 id,它会将其作为数组插入一行。我知道这可能是错误的;)
【参考方案1】:
你正在循环通过$_POST
,没有必要这样做,尝试循环通过$_POST['name']
,像这样:
如果呈现表单的文件与接收帖子的文件相同,则您必须先验证是否已发布帖子,然后再尝试遍历 'name'
。
if(array_key_exists('name', $_POST)
foreach($_POST['name'] as $name)
mysqli_query($connect, "INSERT INTO main (name) VALUES
('$name')");
【讨论】:
嘿阿尔贝托,所以我实际上之前尝试过做类似的事情,但它给了我这个错误:“注意:未定义的索引:名称”和这个“警告:为 foreach() 提供的参数无效” .干杯。 更改了答案,因为我怀疑您可能使用相同的文件/url 来呈现表单并处理插入。请确认是否是这种情况【参考方案2】:试试这个:
mysqli_query($connect, "INSERT INTO main (name) VALUES ('".$name."')");
这里$connect
是您的数据库连接。您需要在代码的前面某处指定此连接。
【讨论】:
以上是关于将多个值从表单插入到数组的主要内容,如果未能解决你的问题,请参考以下文章