【问题标题】:fetch data from an array and save in database从数组中获取数据并保存在数据库中
【发布时间】:2015-05-22 04:45:52
【问题描述】:

我有一个包含 50 个索引值的数组。我在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] 位置保存值。我正在正确获取所有数据,因为我已经通过回显所有变量进行了检查。谁能告诉我如何在数据库中正确保存数组的值

【问题讨论】:

  • 这是因为 'ClassScheduleID' 在前 8 个结果中为 NULL。使 classescheduleid 列接受空值
  • @manoj ClassScheduleID 不为空,我打印了结果,我得到了每个数组的结果
  • 你得到了多少结果

标签: php arrays for-loop multidimensional-array foreach


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    改变

    foreach ($result as $res)
    

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

    【讨论】:

      【解决方案3】:

      $l_latitude = $res['Location']['Latitude'];之后使用正常的插入查询将其插入数据库,然后从此处获取最后插入的 id,然后在 $c_img = $res['ClassDescription']['ImageURL']; 之后编写更新查询并检查您之前获得的最后插入的 id。对其余部分进行类似的操作。这是一个有点冗长的方法,但肯定会为您提供正确的值并且易于编码

      【讨论】:

        猜你喜欢
        • 2016-11-15
        • 1970-01-01
        • 1970-01-01
        • 2019-12-20
        • 1970-01-01
        • 1970-01-01
        • 2021-10-21
        • 2020-03-03
        • 2021-01-02
        相关资源
        最近更新 更多