从数组中提取数据并保存在数据库中

从数组中提取数据并保存在数据库中

问题描述:

我有一个包含50个索引值的数组。 THA阵列,我print_r($result);后得到的一部分是从数组中提取数据并保存在数据库中

Array 
(
    [0] => Array 
     (
      [ClassScheduleID] => 
      [Location] => Array 
       (
        [Latitude] => 
       ) 
      [ClassDescription] => 
       (
        [ImageURL] => 
        [Level] => 
         (
          [Name] => 
         ) 
        [Program] => 
         (
          [Name] => 
         ) 
       ) 
      [Staff] => Array 
       (
        [FirstName] => 
       ) 
     ) 
    [1] => Array 
     (
      [ClassScheduleID] => 
      [Location] => Array 
       (
        [Latitude] => 
       ) 
      [ClassDescription] => 
       (
        [ImageURL] => 
        [Program] => 
         (
          [Name] => 
         ) 
       ) 
      [Staff] => Array 
       (
        [FirstName] => 
       ) 
     ) 
    [2] => Array 
     (
      [ClassScheduleID] => 
      [Location] => Array 
       (
        [Latitude] => 
       ) 
      [ClassDescription] => 
       (
        [ImageURL] => 
        [Program] => 
         (
          [Name] => 
         ) 
       ) 
      [Staff] => Array 
       (
        [FirstName] => 
       ) 
     ) 
)  

我已经通过下面的代码(该代码的一部分)

if (!empty($result)) 
    { 
     foreach ($result as $res) 
      { 
       $classscheduleid = $res['ClassScheduleID']; 
       if(isset($res['Location'])) 
        { 
         $l_latitude = $res['Location']['Latitude']; 
        } 

       if(isset($res['ClassDescription'])) 
        { 
         $c_img = $res['ClassDescription']['ImageURL']; 
        } 

       if(isset($res['ClassDescription']['Level'])) 
        { 
         $c_l_name = $res['ClassDescription']['Level']['Name']; 
        } 

       if(isset($res['ClassDescription']['Program'])) 
        { 
         $c_p_name = $res['ClassDescription']['Program']['Name']; 
        } 

       if(isset($res['Staff'])) 
        { 
         $s_firstname = $res['Staff']['FirstName']; 
        } 

       $sql = "INSERT INTO class_detail (classscheduleid,l_latitude,c_img,c_l_name,c_p_name,s_firstname) VALUES ('".$classscheduleid."','".$l_latitude."',,'".$c_img."','".$c_l_name."','".$c_p_name."','".$s_firstname."')"; 
       if (mysqli_query($conn, $sql)) { 
        echo "New record created successfully"; 
       } else { 
        echo "Error: " . $sql . "<br>" . mysqli_error($conn); 
       } 

      } 
    } 

即我面临的问题是提取从阵列中的数据当我试着在数据库中插入值时,它不插入前8个索引值,它开始从[9]位置保存值。我正确地获取所有数据,因为我通过echo所有变量进行了检查。任何人都可以告诉我如何在数据库中正确保存数组的值

+0

这是因为'ClassScheduleID'在前8个结果中为NULL。使classscheduleid列接受空值 – manoj 2015-03-19 06:31:46

+0

@manoj ClassScheduleID不为空,我打印结果,我得到每个数组的结果 – lyra 2015-03-19 06:33:50

+0

你得到多少结果 – 2015-03-19 06:54:11

$ l_latitude = $水库后[ '位置'] [ '纬度'];使用正常的插入查询将它插入数据库,在$ c_img = $ res ['ClassDescription'] ['ImageURL'];之后写入更新查询后,从此处获取最后插入的ID。并把你最后插入的ID检查得到了。与其余部分一样做。这是一个有点冗长的方法,但一定会给你正确的值,并且很容易编码

您可以尝试使用array_keys()来获取数组中的值的数组键和array_values(),然后使用implode()逗号将它插入数据库。

+0

我试过,但它没有工作 – lyra 2015-03-19 06:43:44

变化

foreach ($result as $res) 

foreach ($result as $key=>$res)