перебрать ассоциативный массив и передать ключ в запросе SQL

0

У меня есть требование, когда пользователь проверяет флажок, im получая значение флажка в качестве пары значений ключа

Array( 
    [checkboxname] => Array( 
           [1] => on 
           [5] => on 
           [12] => on 
           [15] => on 
       )
)

я должен передать этот ключ в инструкции sql и извлечь еще один флажок из этого ключа.

это запрос, который я должен написать

foreach($array as $key => $value)
        {

        }

$reult = $this->db->get_where('select_another_value ', array('id' => $key))->result_array();

что я должен писать в запросе вместо $key

  • 0
    что вы на самом деле хотите? все результат checkboxname?
  • 0
    @ShaifulIslam, когда пользователь нажимает parent_checkbox, он должен увидеть его child_chekbox
Теги:
arrays
codeigniter
associative-array

2 ответа

0

Предположим, вы хотите, чтобы все check boxes where_in() от db и Id внутри массива и использовали where_in() и передавали ключи массива в массиве, см. Ниже пример кода

$all_keys = array_keys($arr['checkboxname']);
$result = $this->db->where_in('id', $all_keys)
      ->get('select_another_value')->result_array();
  • 1
    спасибо за повтор, что если в массиве присутствует только один ключ
  • 1
    если массив имеет один ключевой array(12 => 'on') то также будет работать
Показать ещё 2 комментария
0

Попробуйте -

foreach($array as $key => $value){
    $reult[] = $this->db->get_where('select_another_value ', array('id' => $key))->result_array();
}

Или вы можете попробовать -

$keys = array();
foreach($array as $key => $value){
    $keys[] = $key;
}
if (count($keys) > 1) {
    $where = "  id IN (".implode(',', $keys).")";
} else {
    $where = " id = '".$key[0]."'";
}
$this->db->where($where);

Если вы хотите избежать выполнения запроса внутри цикла.

  • 0
    Вы имеете в виду, что $reult имеет только последние key записи?
  • 0
    @Girish что оп?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню