Как выполнить запрос внутри цикла foreach? - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть запрос, который запускается внутри цикла 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'

1 Ответ

0 голосов
/ 28 декабря 2018

Ваш код вернет значение одного результата и остановит обработку.

Вы можете изменить свой код, чтобы сохранить результаты в массиве, а затем вернуть это?

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;
}

Какупомянул, что вы также можете изменить свой запрос, чтобы использовать функциональность IN MySql.

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...