我有三个数组,我想在数组的 [0]、[1]、[2] 等位置添加数组,这样我就可以将这三个字段的值插入到我的数据库中。
首先,我连接到我的数据库并获取我的结果:
<?php
require_once("con.php");
$p = payment();
$result = mysqli_query($mysqli, $p);
?>
然后我构建我的表单:
<form>
<table>
<?php while ($res = mysqli_fetch_array($result)) { ?>
<tr>
<td class="paid">
<input type="hidden" value="1" name="paid[<?php echo $res['name']; ?>]">
<input type="checkbox" value="0" name="paid[<?php echo $res['name']; ?>]"
<?php
if ($res["paid"] == 0) {
echo "checked";
}
?>>
</td>
<td class="active">
<input type="hidden" value="1" name="active[<?php echo $res['name']; ?>]">
<input type="checkbox" value="0" name="active[<?php echo $res['name']; ?>]"
<?php
if ($res["active"] == 0) {
echo "checked";
}
?> >
</td>
<input type="hidden" name="ID[<?php echo $res['name']; ?>]" value="<?php echo $res['ID']; ?>">
</tr>
<?php } ?>
<tr>
<td>
<input type="submit" name="submit" value="Update">
</td>
</tr>
</table>
</form>
这是我的 PHP 处理程序:
<?php
function updatePayment($paid, $active, $ID) {
$uc = "UPDATE `company` SET `paid`='$paid', `active`='$active' WHERE `ID`='$ID'";
return $uc;
}
$paid = $_POST['paid'];
$active = $_POST['active'];
foreach ($_POST as $key => $value) {
$ID = $ID[$key];
$paid = $paid[$key];
$active = $active[$key];
$up = updatePayment($paid, $active, $ID);
$r = mysqli_query($mysqli, $up);
echo "Information stored successfully";
}
?>
现在它没有插入任何东西,我可以使用 var_dump($_POST)
看到数组中有正确的数据;但我似乎无法将其插入数据库。我已经尝试了一些 for
循环,foreach
但不确定我是否做对了。
有什么想法吗?
var_dump 显示:
array(4) {
["paid"]=> array(3) {
["CompanyA"]=> string(1) "0"
["CompanyB"]=> string(1) "0"
["CompanyC"]=> string(1) "0"
}
["active"]=> array(3) {
["CompanyA"]=> string(1) "1"
["CompanyB"]=> string(1) "1"
["CompanyC"]=> string(1) "0"
}
["ID"]=> array(3) {
["CompanyA"]=> string(2) "12"
["CompanyB"]=> string(2) "13"
["CompanyC"]=> string(2) "14"
}
["submit"]=> string(6) "Update"
}
有没有办法将所有 CompanyA 组合成一个数组来更新或所有数组的数组 [o] 位置,然后是 [1],等等?
最佳答案
这是我想出的答案。希望它能帮助将来的人:
我的 php 处理程序:
<?php
require_once("con.php");
$ID=$_POST['ID'];
$paid=$_POST['paid'];
$active=$_POST['active'];
$count=count($ID);
$n= implode(", ", $ID);
$ID=explode(',',$n);
$p=implode(", ", $paid);
$paid=explode(',',$p);
$a=implode(", ", $active);
$active=explode(',',$a);
$i=0;
for ($i; $i<$count; $i++)
{
echo $paid[$i];
echo $active[$i];
echo $ID[$i];
//adds updated info to database
$uc=updateCompany($paid[$i],$active[$i],$ID[$i]);
$r = mysqli_query($mysqli,$uc);
echo "Information stored successfully";
}
关于php - 如何遍历数组以插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32123770/