在数据库中保存多个复选框值

时间:2015-05-25 07:23:55

标签: php html mysql sql mysqli

我试图从用户端表单中的数据库中的复选框(即不同的行)中保存多个值。我的表单的代码是

<form action="a_insert_vendor_sector.php" method="post">

    <?php

    $sql = "SELECT * FROM sector where cityid='".$cityid."'";

    $sql1 = mysqli_query($con, $sql);
    if (mysqli_num_rows($sql1) > 0) 
        {
            while($row = mysqli_fetch_assoc($sql1)) 
                {
                    $sector = $row["sector"];
                    $sectorid = $row["id"];
                    echo $sector;
                    echo "<input type='checkbox' name='sectorid[]' value='$sector' >";
                    echo "<br>";
                }
        }

       ?>

    <footer>
        <div class="submit_link">
            <input type="submit" name="submit" value="Submit" class="alt_btn">
        </div>
    </footer>   
</form>    

后端代码

<?php
include('a_session.php');
require 'connection.php';

$sectorid = implode(' ', $_POST['sectorid']);

if(isset($_POST['submit']))
    {       
        $sql="INSERT INTO vendor_sector(sectorid) VALUES ('$sectorid')";

        if (mysqli_query($con, $sql)) 
            {
                echo "success";
            } 
        else
            {
                echo "Error updating record: " . mysqli_error($con);
            }  

    } 

?>

原始表查看vendor_sector

id  sectorid
1     A

当我提交表单时,我得到像这样的数组形式的值

Array
(
    [0] => A
    [1] => B
)

因此值正在正常运行直到后端,但我无法正确保存它们。

我的问题是,如果我选择2个值,例如A,B,它们将被保存为像这样的一个值

id  sectorid
1     A,B

我希望将值保存为

id  sectorid
1      A
2      B

2 个答案:

答案 0 :(得分:0)

像 -

一样构建查询

使用方括号() -

将其内爆
$sectorid = "('" . implode("') , ('", $_POST['sectorid']) . "')";

然后将其传递给查询 -

$sql="INSERT INTO vendor_sector(sectorid) VALUES $sectorid";

此外,您需要将implode放在$_POST检查内,就像它没有发布一样,然后您就会收到错误。

答案 1 :(得分:-1)

试试这个:

<?php
include('a_session.php');
require 'connection.php';
$sectorids = $_POST['sectorid'];
if(isset($_POST['sectorid']))
    {
        foreach($sectorids as $sectorid){
           $sql="INSERT INTO vendor_sector(sectorid) VALUES ('$sectorid')";
           if (mysqli_query($con, $sql)) 
               {
                   echo "success";
               } 
           else
               {
                   echo "Error updating record: " . mysqli_error($con);
               }  
           }
        }
    } 
?>
相关问题