我无法使用动态表更新mysql数据库,我可以在提交表单之前添加或删除行。
我可以使用硬编码值,但是当我尝试使用while循环更新时,我似乎无法使其工作
我首先像这样设置POST
results += "<tr><td>" + "<input style=\"border:none\" name=\"bar"+i+"\" id=\"bar"+i+"\" type=\"text\" value=\""+myArray[i]+"\" class=\"field left\" readonly>" + "</td>";
results += "<td>" + "<input class=\"form-control\" type=\"text\" name=\"input"+i+"\" id=\"input"+i+"\"/>" + "</td>";
results += "<input class=\"form-control\" type=\"hidden\" value=\""+myArray.length+"\" name=\"arr\" id=\"arr\" readonly /><table><br /> <br />";
这是我在循环中的悲惨尝试
<?php
$link = mysqli_connect(//correct info);
if(mysqli_connect_error()){
die("Could not connect to database");
}
?>
<script type="text/javascript">
<?php
$arrLength= $_POST['arr'];
$x=0;
while ($x<$arrLength){
$query= "UPDATE `inventory_items` SET `item_quantity` = '" . $_POST['input'+$x] . "' WHERE `Id` = '" . $row['bar'+$x] . "' ;";
mysqli_query($link,$query);
$x++;
};
?>
适用于一行的硬代码看起来像这样
<?php
$arrLength= $_POST['arr'];
$x=0;
while ($x<$arrLength){
$quantity= $_POST['input0'];
$barcode = $_POST['bar0'];
$query="UPDATE inventory_items ".
"SET item_quantity = item_quantity + $quantity ".
"WHERE item_barcode = $barcode" ;
$x++;
};
?>
如何循环使用这些值来更新值,或者如果设置为数组然后运行它会更好
是否可以将$ x添加到名称末尾类似
$quantity= $_POST['input'+$x];
感谢您的帮助
答案 0 :(得分:1)
将您的查询更新为:
$query= "UPDATE `inventory_items` SET `item_quantity` = '" . $_POST['input' . $x] . "' WHERE `Id` = '" . $row['bar' . $x] . "' ;";
你在Javascript中使用了+。用于在php中进行concatonate。在你的代码中,你正在添加一个字符串和整数变量。