使用动态表输入

时间:2015-05-11 22:27:26

标签: php mysql html5

我无法使用动态表更新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];

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

将您的查询更新为:

$query= "UPDATE `inventory_items` SET `item_quantity` = '" . $_POST['input' . $x] . "' WHERE `Id` = '" . $row['bar' . $x] . "' ;";

你在Javascript中使用了+。用于在php中进行concatonate。在你的代码中,你正在添加一个字符串和整数变量。