передать разделенную запятыми строку в предложении в codeigniter - PullRequest
0 голосов
/ 03 июля 2018

Я хочу передать разделенную запятыми строку в предложение IN. Мой код контроллера такой: -

        $batchpost = $this->input->post('batch');//print_r($batch);

        $batch_id = '';
        for($i=0;$i<count($batchpost);$i++ ) {
            $batch_id = $batch_id . $batchpost[$i] . ',';
        }
        $batch_string = rtrim($batch_id, ',');
        $batch = str_replace(",", ",", $batch_string) ;

        $list = $this->admin_model->get_attendance_datatables($batch);

Здесь $batchpost вернет значение массива, и я хочу преобразовать его в строку через запятую и передать в модель.

Код моей модели: -

    $this->db->select('offline_student.*,batch.batch_name,offline_course.course');
    $this->db->from($this->table8);
    $this->db->join('offline_course', 'offline_course.id = offline_student.course', 'left');
    $this->db->join('batch', 'batch.id = offline_student.batch', 'left');                
    $this->db->where('offline_student.status', 'Active');
    $this->db->where_in('batch.id', $batch);
    $this->db->order_by('offline_student.id', 'asc');

Предположим, в строке для столбца пакета, имеющего два значения (2,3) в базе данных, если я передам в модель только '2' или '2,3', запрос вернет мой результат, но когда я передам только 3, Эта запись не отображается.

1 Ответ

0 голосов
/ 03 июля 2018

Удалите следующие строки:

$batch_id = '';
for($i=0;$i<count($batchpost);$i++ ) { 
    $batch_id = $batch_id . $batchpost[$i] . ','; 
} 
$batch_string = rtrim($batch_id, ','); 
$batch = str_replace(",", ",", $batch_string) ; 

... и сделай так:

$batchpost = $this->input->post('batch');//print_r($batch); 
$list = $this->admin_model->get_attendance_datatables($batchpost);

вам не нужно преобразовывать $batchpost в строку, разделенную запятыми, потому что метод where_in() ожидает массив со вторым параметром.

См. Документы where_in(), здесь https://www.codeigniter.com/userguide3/database/query_builder.html#looking-for-specific-data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...