如何检查where条件中的数组值?

时间:2017-08-23 05:53:16

标签: mysql arrays codeigniter

嗨朋友我在阵列中有一个小小的想法,所以请帮帮我!!!

这里我有 3个表
     1. tbl_prescription
     2. tbl_pre_medi
     3. tbl_stock

tbl_stock用于保存药物库存

m_id   on_hand    returned  
111    600        0  
222    600        0 

on_hand当前库存已退回正在销售药品,我们选择一些数量添加到退货并从on_hand减去的药品

tbl_prescription用于存储购买的医疗数据,tbl_pre_medi存储按数组插入的数量和药品名称

tbl_prescription

prscrptn_id   p_opno    p_family   p_patient   p_date  
1             1002      2          5           2017-08-04  
2             1003      2          3           2017-08-04  

tbl_pre_medi

med_prscrptn_id   medi_id   medi_qunty  
1                 111       4  
1                 222       2  
2                 222       5  

这里插入了我的数据,但是如何用tbl_pre_medi检查tbl_stock - 这个表数据是在数组中如何检查where条件中的数组值?

我的控制器

$pid=$this->input->post('pid');
$data = array(
              'prscrptn_id' =>$pid,
              'p_opno' =>$this->input->post('opno'),
              'p_family' =>$this->input->post('family'),
              'p_patient' =>$this->input->post('member'),
              'p_date' =>$this->input->post('date')
             );
$form_data=$this->input->post();
$medicine=$form_data['medi_name'];
$qunty=$form_data['qty_med'];
$result=$this->Prescription_model->insert_prscrptn($form_data,$data,$pid);

我的模特

public function insert_prscrptn($form_data,$data,$pid)
    {
        $medicine=$form_data['medi_name'];
        $qunty=$form_data['qty_med'];

        $this->db->select('*'); 
        $this->db->from('tbl_stock');
        $this->db->where('m_id',$medicine);
        $query = $this->db->get()->result();

        $insert_prscrpt=[];
        foreach($medicine as $key => $value)
        {
            $insert_prscrpt[$key]=
            array(
            'medi_id'=>$medicine[$key],
            'medi_qunty'=>$qunty[$key],
            'med_prscrptn_id'=>$pid
            );  
        }


        $query1=$this->db->insert('tbl_prescription',$data);
        $query=$this->db->insert_batch('tbl_pre_medi', $insert_prscrpt);
        return $query;
    }

如何检查条件中的数组值?
任何人帮助我!!! 提前谢谢

1 个答案:

答案 0 :(得分:1)

对于codeigniter中的数组,您需要使用where_in子句而不是where,如下所述。

$this->db->where('meb_id',$medicine);

<强>替换

$this->db->where_in('meb_id', $medicine);

如果不起作用,请告诉我。