2015-05-11 67 views
1

我无法更新MySQL数据库与动态表格,我可以在提交表单之前添加或删除行。使用动态表格输入更新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

使用'mysqli_ *'或'PDO'不足以防止SQL注入。您需要清理查询中使用的变量,或者甚至更好地使用参数化查询 –

回答

1

更新您的查询:

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

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

+0

感谢您的炸弹 –