2009-07-22 3 views
1

У меня есть форма, которая перечисляет идентификатор модуля, а также sub_module_id, напримерВставка значения массива в базу данных

  • ADMIN === является родительским модулем ID
  • пользователей === подмодуль идентификатор

здесь админ появляется в меню, и пользователи внутри администратора

теперь внутри формы я использовал флаг как

[]Admin 
    []Users 

для родительского модуля ID администратора

<input id='module_permission[]' onclick=\"selectall()\" type='checkbox' value='".$key."' name='module_permission[]' $val_checked ><b>".$val."</b><br> "; 

для вспомогательных модулей

<input type='checkbox'  id='sub_module_permission[$l][]' name='sub_module_permission[$l][]' value='".$key1 ."' onclick=\"selectParent($l);\" $val_checked>".$val1."<br> "; 

, когда я нажимаю в флажком его идентификатор получить почту, и мне нужно вставить в Databse, но я unabale, чтобы вставить суб _Module идентификатор в базе данных

размещать

$module_id=$_post[module_permission] 
foreach($module_id as $key=>$value){ 
      $sql2 = "INSERT INTO user_permissions(permission_id, employee_cd,module_id) values 
         (PERMISSION_ID_seq.nextval,'$employee_cd','$value')"; 
      $this->db->db_query($sql2); 
      } 

для суб _modules

$sub_module_id =$_POST['sub_module_permission']; 
      print_r($sub_module_id); 

      foreach($sub_module_id as $sub_key=>$sub_value) 
      { 
      echo $sub_value[1]; 

      $sql4 = "INSERT INTO user_permissions(permission_id, employee_cd,module_id) values 
        (PERMISSION_ID_seq.nextval,'$employee_cd','$sub_value')"; 

ЗДЕСЬ значение модуля идентификации родителя вставляются в базу данных, но не sub_module

пожалуйста, помогите

+0

Несколько вопросов, что такое «PERMISSION_ID_seq.nextval»? – Extrakun

+0

PERMISSION_ID_seq.NEXTVAL»это просто идентификатор с последовательностью reated в оракула – 2009-07-23 06:41:57

ответ

2

так, что печатает, когда вы print_r ($ sub_module_id); и echo $ sub_value [1] ;?

И как выглядит ваша строка запроса после того, как вары подгружаются? echo $ sql4;

Попробуйте запустить строку запроса непосредственно в SQL, а не через PHP. Это даст вам знать, есть ли у вас ошибка SQL или ошибка PHP. Если SQL в порядке, добавьте некоторую проверку ошибок на ваш PHP, чтобы вы могли видеть, где это происходит. Обычно я обернуть все запросы в чем-то вроде:

if(!$result=$mysqli->query($query)) 
    throw new Exception($query. " " .$mysqli->error); 

Из ваших комментариев и теперь правильно отформатированный код, то можно увидеть, что вы не ссылаясь на 2-й размер вашего submoduleid. В других словах вы пытаетесь ввести массив в ваш оператор SQL.

Это то, что у вас есть:

$sub_module_id =$_POST['sub_module_permission']; //a 2d array    
    print_r($sub_module_id);     
    foreach($sub_module_id as $sub_key=>$sub_value){ 
    echo $sub_value[1];     
    $sql4 = "INSERT INTO user_permissions(permission_id, employee_cd,module_id) 
       values(PERMISSION_ID_seq.nextval,'$employee_cd','$sub_value')"; 
    } 

И это то, что вам нужно:

$sub_module_id =$_POST['sub_module_permission']; //a 2d array    
    print_r($sub_module_id);     
    foreach($sub_module_id as $sub_key=>$sub_value_arr){ //values are an array not a scalar 
    echo $sub_value_arr[1]; 
    $sub_value= $sub_value_arr[1]; //get scalar for SQL    
    $sql4 = "INSERT INTO user_permissions(permission_id, employee_cd,module_id) 
       values(PERMISSION_ID_seq.nextval,'$employee_cd','$sub_value')"; 
    } 
+0

, как я объявили двойной массив во имя = 'sub_module_permission [$ л] [] при печати print_r ($ sub_module_id) печатает Массив ( [2] = > Массив ( [0] => 9 [1] => 11 [2] => 12 [3] => 13 ) [4] => Массив ( [0] => 10 [1] => 17 [2] => 18 [3] => 88 ) ) Теперь мне нужно вставить, 9,11,12 ... в каждой строке в моем Databse, где 9,11,12 являются подмодули пожалуйста, помогите как можно скорее – 2009-07-23 06:45:18

+0

Спасибо за ваш ответ я имею был в состоянии решить эту проблему $ sub_module_id = $ _ POST ['sub_module_permission']; \t \t \t \t \t \t // print_r ($ sub_module_id); \t \t \t \t \t \t \t \t \t Еогеасп ($ sub_module_id, как $ sub_key => $ sub_value) { \t \t \t \t Еогеасп ($ sub_value, как $ s_sub_key => $ s_sub_value) { \t \t \t \t $ sql4 = "INSERT INTO user_permissions (permission_id, employee_cd, module_id) значения \t \t \t \t \t (PERMISSION_ID_seq.nextval, '$ employee_cd', '$ s_sub_value') "; \t \t \t \t \t \t \t \t \t \t $ this-> db-> db_query ($ sql4); используя код baove Thanx – 2009-07-23 12:32:55

0

Unrelated, но если вы получаете, что входные данные из формы (и на самом деле, даже если вы нет), это всегда хорошая идея, чтобы дезинфицировать ваш SQL.

Смежные вопросы