Veritabanına dizi değerlerini yerleştirin

2 Cevap php

Ben örneğin, modül id listeler ve aynı zamanda sub_module_id bir form var

  • ADMIN === ana modülü kimliği
  • Kullanıcılar === alt modülü id

Burada admin içindeki menü ve kullanıcılara görünür

Şimdi form içinde i gibi kutucuğa kullanmış

[]Admin
    []Users

ana modül kimliği admin için

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

alt modülleri için

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

i onay kutusunu kendi id olsun mesajını tıklayın ve veritabanındaki id _module alt eklemek i databse için eklemek gerekir ama unabale olduğum zaman

göndermek için

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

alt _modules için

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

BURAYA ana modül id değeri veritabanına eklenen değil sub_module olsun

lütfen yardım

2 Cevap

Eğer ($ sub_module_id) print_r nedenle zaman ne yazdırır; ve echo $ sub_value [1];?

Ve sorgu dizesi vars içinde subbed sonra neye benziyor? $ sql4 echo;

PHP ile SQL doğrudan sorgu dizesi çalışan ziyade sahipsiniz. Bu bir SQL hatası ya da bir PHP hatası varsa size bildireceğiz. SQL ince ise, burada başarısız görebilirsiniz böylece PHP için kontrol bazı hata ekleyin. Genellikle ben gibi bir şey tüm sorguları sarın:

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

Görüş ve artık düzgün biçimlendirilmiş kod, sizin submoduleid ve 2. boyut atıfta olmadığını görmek mümkündür. Başka bir deyişle Eğer SQL deyimi içine bir dizi alt çalışıyoruz.

Bu ne var:

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

Ve bu ne ihtiyaç vardır:

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

(Sen değilsin bile ve gerçekten) ilgisiz, ancak bir form o girdi alıyorsanız eğer, o zaman sanitize your SQL için iyi bir fikirdir.