【问题标题】:How to check the array values in where condition?如何在 where 条件下检查数组值?
【发布时间】:2018-01-31 13:33:03
【问题描述】:

嗨朋友们,我有一个小想法,请帮助我!!!

我这里有 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;
    }

如何在where条件下检查数组值?
任何人帮助我! 在此先感谢

【问题讨论】:

  • 您的问题还是不清楚要检查什么?
  • $medicine 检查到 tbl_stock m_id 并添加数量到 returen 并从 on_hand 中减去你看到查询“/***** 这里我检查条件如何?*******/ "

标签: mysql arrays codeigniter


【解决方案1】:

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

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

替换

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

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

【讨论】:

  • 如何减少库存_tbl的数量?
  • 您要减少stock_tbl中的数量的具体操作?
  • "array(1) { [0]=> object(stdClass)#24 (2) { ["m_id"]=> string(3) "111" ["on_hand "]=> string(3) "494" } }" 和 " array(1) { [0]=> array(3) { ["medi_id"]=> string(3) "111" ["medi_qunty"] => 字符串(2) "20" ["med_prscrptn_id"]=> 字符串(1) "2" } }"
  • 嗯,您的第一个数组似乎是标准对象,第二个是数组。标准对象,您可以使用-> 运算符如$array->item 获取项目,而在数组中,您可以使用$array['item'] 获取项目。
猜你喜欢
  • 1970-01-01
  • 2011-12-08
  • 2018-03-26
  • 2018-11-21
  • 1970-01-01
  • 2014-04-21
  • 1970-01-01
  • 1970-01-01
  • 2021-05-25
相关资源
最近更新 更多