Произошла ошибка базы данных Номер ошибки: 1054 Неизвестный столбец «Массив» в «предложении где» - PullRequest
0 голосов
/ 15 января 2019

я не могу получить значение $ list_izin из массива, как я могу получить значение из массива и установить значение для условия условия условия

$ list_izin = ['7', '11', '14', '16', '19', '202', '139', '157'];

$where = array(
    'tmuser_userauth.userauth_id' => $userauth_id,
    'tmpegawai.bidangid' => $bidangid,
    'trperizinan_user.trperizinan_id' => $list_izin
    );
    }
    return $this->db
            ->select('
                tmpegawai.pegawaiid,
                tmpegawai.n_pegawai,
                tmpegawai.telp,
                tmuser.photo,
                tmuser.last_login,
                trperizinan_user.trperizinan_id

            ')
            ->from($this->table)
            ->join('tmuser', 'tmuser.tmpegawai_id = tmpegawai.pegawaiid')
            ->join('tmuser_userauth','tmuser_userauth.tmuser_id = tmuser.id')
            ->join('trperizinan_user','trperizinan_user.user_id = tmuser.id')
            ->where($where)
            ->get();
}

1 Ответ

0 голосов
/ 15 января 2019

Вы видите ошибку «неизвестный столбец« Массив »», потому что массив идентификаторов преобразуется в строку, когда это значение ассоциативного массива обрабатывается where(). («Массив» - это строковое представление любого массива в PHP.)

Чтобы исправить это, сначала удалите последний столбец из массива $where.

$where = array(
    'tmuser_userauth.userauth_id' => $userauth_id,
    'tmpegawai.bidangid' => $bidangid,
);

Затем в ваш запрос выбора добавьте список идентификаторов в состоянии where_in().

return $this->db
    ->select('
        tmpegawai.pegawaiid,
        tmpegawai.n_pegawai,
        tmpegawai.telp,
        tmuser.photo,
        tmuser.last_login,
        trperizinan_user.trperizinan_id

    ')
    ->from($this->table)
    ->join('tmuser', 'tmuser.tmpegawai_id = tmpegawai.pegawaiid')
    ->join('tmuser_userauth','tmuser_userauth.tmuser_id = tmuser.id')
    ->join('trperizinan_user','trperizinan_user.user_id = tmuser.id')
    ->where($where)
    ->where_in('trperizinan_user.trperizinan_id', $list_izin)
    ->get();

where_in() будет добавлен к существующим критериям, определенным в where(), он не заменит его.

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