where_in只返回1行

时间:2017-06-22 16:58:03

标签: php mysql codeigniter phpmyadmin

我有这段代码:

models(Mproses.php):

function cari($d,$p)
{
        $this->db->select('cf_pakar,gejala');
        $this->db->from('gejalapenyakit');
        $this->db->where_in('id_gejala',$d);
        $this->db->where('id_penyakit',$p);

    return $this->db->get()->result();
}

$ d =('1','2','3','4','5')

$ p = 1

我有30行数据库, 当我运行此代码时,我只有1行而不是5行,我尝试从mysql查询并返回5行而不仅仅是1行。

3 个答案:

答案 0 :(得分:0)

尝试:

function cari($d,$p)
{
    $this->db->select('cf_pakar,gejala');
    $this->db->from('gejalapenyakit');
    $this->db->where('id_penyakit',$p);
    $this->db->where_in('id_gejala',$d);


return $this->db->get()->result();
}

您的$d = ('1','2','3','4','5')应为$d = ['1','2','3','4','5']

尝试这样做:

function cari($d,$p)
{
    //load $d here with that :
    $d = ['1','2','3','4','5'];
    //or that :
    $d = [1,2,3,4,5]
    $this->db->select('cf_pakar,gejala');
    $this->db->from('gejalapenyakit');
    $this->db->where('id_penyakit',$p);
    $this->db->where_in('id_gejala',$d);


return $this->db->get()->result();
}

如果它有效,那么你的问题来自你的$ d。如果不是,那么您的问题必须来自您的数据库

答案 1 :(得分:0)

您需要发送','查询中的分离值。

$ d = implode(",",$ d);

这样可行。

答案 2 :(得分:0)

回答:

最初我使用foreach来制作我的:

$input = $this->input->post('input');
$i = 0;
foreach($input as $i){
$i++;
$d = $d.$i.',';
$d = ('1','2','3','4','5');

当我使用$ input作为参数时,它的工作完美