2014-03-01 219 views
1

我在codeigniter中有一个像这样的循环查询。但它以另一个值执行。不通过POST方法获得的值循环更新查询不起作用

$j = $_POST['hidden']; 
    $inv_id = $_POST['invoice_id']; 
    $sum = ''; 
    for($i = 1; $i <= $j; $i++){ 
    $wh_quantity1 = $_POST['quantity'.$i]; 
    //print_r($wh_quantity1); 

    if($wh_quantity1 ==''){ 

     $wh_quantity = 0; 
    } 
    else{ 
     $wh_quantity = $wh_quantity1; 
    } 
    $query = "UPDATE tb_warehouse_stocks SET wh_product_qty = wh_product_qty - $wh_quantity WHERE invoice_id = '$inv_id'"; 
    $this->db->query($query); 
    $sum += $wh_quantity; 

    } 

为什么它是这样的。它总是比POST值的值更新

+0

什么是'wh_product_qty'值? –

+0

它在数据库表中。我需要通过从其中减去$ wh_quantity来更新它 –

+0

此查询容易受到SQL注入的影响。消毒您的输入或使用准备好的语句来防止发生可怕的事情。即使用户没有意外(或者他的猫在键盘上)的意外输入也可能会通过此更新查询完全破坏您的数据。 –

回答

0

把这个.htaccess文件

RewriteEngine On 
RewriteRule^http://example.com/international/university-english-access-course$ http://example.com/website/page/english-access [R=301,L] 
0

的情况下,试试这个你不必须全部交指数

$j = $this->input->post('hidden'); 
    $inv_id = $this->input->post('invoice_id'); 
    $sum = 0; 
    for ($i = 1; $i <= $j; $i++) { 
     $wh_quantity = (int) $this->input->post('quantity' . $i); 
     $sum += $wh_quantity; 
    } 

    $query = "UPDATE tb_warehouse_stocks SET wh_product_qty = wh_product_qty - $sum WHERE invoice_id = '$inv_id'"; 
    $this->db->query($query);