如何在数据库中具有相同ID的多行中插入多个复选框值

Posted

技术标签:

【中文标题】如何在数据库中具有相同ID的多行中插入多个复选框值【英文标题】:How to insert multiple values of checkbox in multiple rows with same id in database 【发布时间】:2018-07-07 07:48:56 【问题描述】:

这是我的html代码

    <form action="view.php" method="post" id="form">
    <p>checkbox: <input type="checkbox" name="check[]" value="INCOMETAX" />INCOMETAX</p>

    <p>checkbox: <input type="checkbox" name="check[]" value="GST" />GST</p>

    <p>checkbox: <input type="checkbox" name="check[]" value="VAT" />VAT</p>

我的php代码在这里

if ( isset($_POST['check']) ) 
        $checkbox1=$_POST['check'];  

        $chk = "";  
        foreach($checkbox1 as $chk1)  
          
         $chk .= $chk1 .",";

                   $sql = "INSERT INTO value (service) VALUES ('$chk')";

        

代码工作正常,但我想将值存储在具有相同 id 的新行中,现在复选框中的多个值存储为 INCOMETAX、GST、VAT

我如何将 INCOMEtax 存储在第一行,GST 存储在第二行,VAT 存储在第三行,并且具有相同的 id 1

【问题讨论】:

value 表的 id 列是否不是主键,因此是唯一的? 【参考方案1】:

您可以在 php 中创建一个 foreach 循环,该循环将为每个选中的复选框包含 Insert 语句。

这个问题实际上已经被问过了。这是一个链接 Inserting checkbox values into database

我还鼓励您使用参数化查询。

【讨论】:

【参考方案2】:
if ( isset($_POST['check']) )  

    $checkbox1=$_POST['check'];

    $sql = "";  
    foreach($checkbox1 as $chk1)       
        mysql_query("INSERT INTO value (service) VALUES ('".$chk1."')");
    

这将每次插入数据库而不是生成查询

【讨论】:

错误:--------插入值(服务)值('INCOMETAX');插入值(服务)值('GST');错误:插入值(服务)价值('INCOMETAX');插入价值(服务)价值('GST');您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 1 行的“INSERT INTO value (service) VALUES ('GST')' 附近使用正确的语法 @PayalPawar 刚才我根据您的字段以值的名称创建了一个表,我复制了您的错误消息并删除了那些不需要的字母 ERROR :-------- 并在 mysql 中执行。一切对我有用。替换此行后尝试 mysql_query("INSERT INTO value (service) VALUES ('".$chk1."')");该错误可能是由于您的表名而发生的,因为 value 是 mysql 中的一个函数。因此,当您用作表格或字段时,您应该使用 ` 符号。让我知道它是否有效。

以上是关于如何在数据库中具有相同ID的多行中插入多个复选框值的主要内容,如果未能解决你的问题,请参考以下文章

如何从具有相同 id 的多行中选择仅一行的值并用 - 分隔它们? [复制]

如何在 SQL Server 中对具有相同 ID 的多行求和

多个具有相同 id 且需要选择一个的复选框 - jquery

如何使用多个具有相同名称的表单输入?

从生成的复选框将多个条目插入数据库

向表中插入多行 - Access