如何在foreach循环中运行查询?

找到山姆

我有一个查询,该查询在foreach循环内运行,但仅在以下代码中立即运行,如下所述:

public function functional_job($functional)
    {
        $functions = explode(",",$functional);
        foreach($functions as $row)
        {
            $this->db->select('*');
            $this->db->from('job');
            $this->db->where('functional',$row);
            $query = $this->db->get();if($query->num_rows()>0)
            {
                $result = $query->result_array();
                return $result;
            }
            else
            {
                $this->session->set_flashdata('msg','<p style="color:red;font-weight: 600;">No Job Found.</p>');
            }
        }
    }

在哪里$functional = IT,marketing,ecommerce当我点击查询时,它只会运行一个类似的查询SELECT * FROM job WHERE functional = 'IT'但我希望它运行三遍SELECT * FROM job WHERE functional = 'IT' SELECT * FROM job WHERE functional = 'marketing' SELECT * FROM job WHERE functional = 'ecommerce'

原子数

您的代码将返回一个结果的值并停止处理。

您可以更改代码以将结果存储在数组中,然后返回该代码?

public function functional_job($functional){

    $functions = explode(",",$functional);

    $results = array();

    foreach($functions as $row)
    {
        $this->db->select('*');
        $this->db->from('job');
        $this->db->where('functional',$row);
        $query = $this->db->get();
        if($query->num_rows()>0)
        {
            $results[] = $query->result_array();
        }
        else
        {
            $this->session->set_flashdata('msg','<p style="color:red;font-weight: 600;">No Job Found.</p>');
        }
    }

    return $results;
}

如前所述,您还可以更改查询以使用MySql的IN功能。

SELECT * FROM job WHERE functional IN ('IT', 'marketing', 'ecommerce')

如果不知道codeigniter,它可能看起来像:

$this->db->select('*');
$this->db->from('job');
$this->db->where_in('id', $functional);
$query = $this->db->get();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章