2015-05-11 61 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

感謝您的炸彈 –