2009-07-22 8 views
1

I ont une forme qui liste id du module et aussi sub_module_id, par exempleInsérer des valeurs de tableau dans la base de données

  • ADMIN === est module parent ID
  • utilisateurs === sous-module id

ici admin apparaît dans le menu et les utilisateurs à l'intérieur d'administration

maintenant à l'intérieur de la forme que j'ai utilisé comme case à cocher

[]Admin 
    []Users 

pour le module parent ID administrateur

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

pour les modules sous

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

quand je clique dans la case à cocher son id obtenir après et j'ai besoin d'insérer à databse mais je suis unabale d'insérer la sous id _module dans la base de données

pour poster

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

pour les sous _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')"; 

ICI identifiant du module parent sont insérés dans la base de données, mais pas le sub_module

s'il vous plaît aider

+0

Juste quelques questions, qu'est-ce que "PERMISSION_ID_seq.nextval"? – Extrakun

+0

PERMISSION_ID_seq.nextval » il est tout simplement id avec la séquence réé dans l'oracle –

Répondre

2

donc ce qui imprime lorsque vous print_r (sub_module_id de $); et echo $ sub_value [1] ;?

Et à quoi ressemble votre chaîne de requête après l'insertion des variables? echo $ sql4; Essayez d'exécuter la chaîne de requête directement dans SQL plutôt que via PHP. Cela vous permettra de savoir si vous avez une erreur SQL ou une erreur PHP. Si le SQL est correct, ajoutez une vérification d'erreur à votre PHP afin que vous puissiez voir où il échoue. Habituellement, je conclurai toutes les requêtes dans quelque chose comme:

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

De vos commentaires et le code maintenant correctement formaté, il est possible de voir que vous ne parlez pas à la 2ème dimension de votre submoduleid. En d'autres termes, vous essayez de sous-créer un tableau dans votre instruction SQL.

C'est ce que vous avez:

$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')"; 
    } 

Et voici ce dont vous avez besoin:

$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

comme je l'ai déclaré matrice double nom = 'sub_module_permission [$ l] [] quand j'imprimer print_r (sub_module_id de $) il imprime Tableau ( [2] = > tableau ( [0] => 9 [1] => 11 [2] => 12 [3] => 13 ) [4] => tableau ( [0] => 10 [1] => 17 [2] => 18 [3] => 88 ) ) maintenant je dois insérer, 9,11,12 ... dans chaque ligne de mon databse, où 9,11,12 sont des modules sous s'il vous plaît aider dès que possible –

+0

Merci pour votre réponse que je été capable de le résoudre $ 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 foreach ($ sub_module_id comme $ sub_key => $ sub_value) { \t \t \t \t foreach (sub_value de $ en $ s_sub_key => $ s_sub_value) { \t \t \t \t $ sql4 = "INSCRIRE dans les valeurs 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 $); en utilisant le code baove Thanx –

0

non apparentés, mais si vous obtenez cette entrée d'une forme (et vraiment, même si vous n'êtes pas), c'est toujours une bonne idée de assainir votre SQL.

Questions connexes