使用已发布的数组更新mysql表

时间:2013-03-14 14:34:34

标签: php mysql

我可以帮助我花费足够长的一周时间试图为自己解决这个问题,但无济于事。 我想要做的是向用户提供一个表单,通过该表单他/她可以更新相关表格acc_stock_items中的库存水平。我还让他们能够根据需要增加表格上的输入行数。 / p>

我有一个表单,我有一个列表框和两个输入文本框:

lst_product[] 
txt_quantity[] 
txt_cost[] 

同样在这个表单上,我在“relcopy”中有一个jquery插件,可以根据需要添加另一行。 我怀疑我需要一个数组来将这些数据放到表中,所以我本周就是研究aray的。这是我到目前为止所提出的。 为清楚起见,我删除了数据清理代码以及一些文本输入框。 我的表格如下:

<form name="form1" method="post" action="phpcode/update_stock_level.php">
<table width="80%" border="0" class="btn-large">
<tr>
<th scope="col">Stock Item:</th>
<th scope="col">Qnty Received:</th>
<th scope="col">Item Cost:</th>
<th scope="col">&nbsp;</th>
<th scope="col">&nbsp;</th>
</tr>
<tr class="phone">
<td><select name="lst_product[]" class="controls" id="product_id">
<option><?php prod_list()?></option>
</select></td>
<td><input name="txt_quantity[]" type="text" class="controls" id="quantity" value=""></td>
<td><input name="txt_item_cost[]" type="text" class="controls" id="item_cost" value=""></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
<p><a href="#" class="copy" rel=".phone">Add stock line</a></p>
<div class="span7"><p>
<input name="updatestock" type="submit" class="btn-primary" id="button" value="Submit">
<span class="textarea">
<input name="hidden_company_id" type="hidden" id="hidden_company_id" value="<?php echo `$_SESSION['sess_company_id']?>" />`
</span></p>
</div>

</form> 

当我发布表单时,使用echo'

';
print_r($_POST); echo '
';在接收页面上,我得到一个这样的数组:

Array
(
[lst_product] => Array
(
[0] => 1
)

[txt_quantity] => Array
(
[] => 33
)

[txt_item_cost] => Array
(
[0] => 44
)

[updatestock] => Submit
[hidden_company_id] => 5
) 

这个例子只显示了一个正在发布的产品,我试图在扩展之前使用一个更新。

这是我在更新页面上的代码:

<?php session_start();?>
<?php require_once('../Connections/connpay.php'); ?>
<?php require_once('../functions/global_functions.php'); ?>
<?php require_once('../functions/account_functions.php'); ?> 
<?php
//$company_id = ($_POST['hidden_company_id']);
?>
<?php 
//Lets connect to the database
if(mysqli_connect_errno()){
exit("Failed to connect to the database".mysqli_connect_error());}
?>
<?php
foreach ($_POST['lst_product'] as $row=>$id)
$productid = $id;
$newquantity = ($_POST['txt_quantity'][$row]);
$query = "UPDATE acc_stock_items SET stock_level = '$newquantity' WHERE product_id =   '$productid'";
if($conn->query($query)===TRUE){
echo $company_id;
//Header("Location:../view_stock_items.php");
echo "all good";
echo "quantity is ".$newquantity;
}
else {
echo "Error:".$conn->error;
}
?>

<?php 
//$update_stock = array(
//$prodid => $_POST['lst_product'],
//$quantity => $_POST['txt_quantity'],
//$cost => $_POST['txt_item_cost']);


echo '<pre>';
print_r($_POST); echo '</pre>';

echo print_r($_POST); 
?>

我尝试的任何东西都不会更新单个库存水平,我已经尝试回显变量"$newquantity"并且出现空白。 我知道我必须为一个键和行中的值分配一个变量,然后遍历数组并更新表中的每一个,但到目前为止,这个概念已经躲过了我。任何和所有的帮助将不胜感激。 大卫

0 个答案:

没有答案