2017-10-12 61 views
1

我该如何循环访问这个数组,然后将值赋给一个变量并将其保存到MySQL?php多维表格数组

使用此表单生成以下数组。我不想使用索引键,因为值的数量可能增加或减少。

<input type="text" name="formB[usr_f_name][]" placeholder="First Name" /> 
<input type="text" name="formB[usr_l_name][]" placeholder="Last Name" /> 
<input type="text" name="formB[usr_mobile][]" placeholder="Mobile Number" /> 






Array 

(
    [usr_f_name] => Array 
     (
      [0] => first 
      [1] => second 
     ) 

    [usr_l_name] => Array 
     (
      [0] => 
      [1] => 
     ) 

    [usr_mobile] => Array 
     (
      [0] => 
      [1] => 
     ) 

    [usr_email] => Array 
     (
      [0] => 
      [1] => 
     ) 

) 

这是我目前所拥有的。但不能让它工作

$id_array = array_keys($_POST['formB']); 
    foreach ($id_array as $id){ 
     $usr_f_name = mysqli_real_escape_string ($_POST['usr_f_name'][$id]); 
     $usr_l_name = mysqli_real_escape_string ($_POST['usr_l_name'][$id]); 
     $usr_mobile = mysqli_real_escape_string ($_POST['usr_mobile'][$id]); 
$sql = "INSERT INTO formB SET f_name = '$usr_f_name', l_name = '$usr_l_name', mobile ='$usr_mobile'"; 
    } 
+0

其中'$ id_array'来自哪里? – madalinivascu

+0

opps - 纠正... –

回答

3

你可以做这样的事情

foreach ($_POST['formB']['usr_f_name'] as $id=>$value){//loop over the values of the usr_f_name and then use the index of that to get the other values 
     $usr_f_name = mysqli_real_escape_string ($_POST['formB']['usr_f_name'][$id]); 
     $usr_l_name = mysqli_real_escape_string ($_POST['formB']['usr_l_name'][$id]); 
     $usr_mobile = mysqli_real_escape_string ($_POST['formB']['usr_mobile'][$id]); 
$sql = "INSERT INTO formB SET f_name = '$usr_f_name', l_name = '$usr_l_name', mobile ='$usr_mobile'"; 
    } 
+0

虐待尝试....但没有任何其他方式。 –

+0

旁边的任何其他方式循环?没有! – madalinivascu

+0

我的意思是说任何其他循环方法。 –

0

尝试......

$array = array(  
    'usr_f_name' => array('first','second'), 
    'usr_l_name' => array('',''), 
    'usr_mobile' => array('',''), 
    'usr_email'  => array('',''), 
);//Your array 

$sql= ''; 
for($i=0;$i<count($array['usr_f_name']);$i++) 
$sql .= "INSERT INTO formB SET f_name = '".$array['usr_l_name'][$i]."', l_name = '".$array['usr_l_name'][$i]."', mobile ='".$array['usr_mobile'][$i]."';";