我试图从用户端表单中的数据库中的复选框(即不同的行)中保存多个值。我的表单的代码是
<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
答案 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);
}
}
}
}
?>