codeigniter在控制器中获取数组数据

时间:2016-12-16 09:09:31

标签: codeigniter

我在控制器中有sql查询,此查询产生行数。

if(isset($_POST['submit']))
    {
        echo "PHP Working here!";
        echo "Action Set to ".$_POST['action'];
        if($_POST['action']=='confirmDelete')
        {
            echo "Now Deleting!!";
            foreach ($_POST['selected'] as $delete_id) 
                {
                    $query = "DELETE FROM grocery WHERE id = $delete_id";
                    mysqli_query($dbc, $query)
                        or die('Error querying database.');
                }
        }
    }

然后我将这些数据传递给我的模型,

$q1 = $this->db->query("SELECT product_code,product_quantity FROM tbl_order_details WHERE order_id='$order_no' AND location='$location'")->row();

                 foreach($q1 as $v_barcode){
                 $result = $this->settings_model->update_cancel_stock($v_barcode->product_code,$v_barcode->product_quantity);
                 }

但没有任何更新。请检查上面的代码。感谢名单

2 个答案:

答案 0 :(得分:0)

您正在使用Active Record的row()功能。它已经只返回一行。所以没有foreach的要求。试试这个:

$q1 = $this->db->query("SELECT product_code,product_quantity FROM tbl_order_details WHERE order_id='$order_no' AND location='$location'")->row();

$result = $this->settings_model->update_cancel_stock($q1->product_code,$q1->product_quantity);

如果您获得了多条记录并且使用的是foreach,则应使用result()

$q1 = $this->db->query("SELECT product_code,product_quantity FROM tbl_order_details WHERE order_id='$order_no' AND location='$location'")->result();

foreach($q1 as $v_barcode){
    $result = $this->settings_model->update_cancel_stock($v_barcode->product_code,$v_barcode->product_quantity);
}

答案 1 :(得分:0)

试试这个

$cond = array("order_id" => $order_no, "location" => $location);
$q1 = $this->db->select("product_code,product_quantity")->from("tbl_order_details")->where($cond)->row();

$result = $this->settings_model->update_cancel_stock($q1->product_code,$q1->product_quantity);

然后模型($code未使用)

public function update_cancel_stock($code,$qty){
     $this->db->set('product_quantity', $qty , FALSE);
     $this->db->where('product_id', $code);
     $this->db->update('tbl_inventory6');                
 }