【问题标题】:Insert values from multidimensional array to database将值从多维数组插入数据库
【发布时间】:2021-07-25 05:49:21
【问题描述】:

我对 PHP 非常陌生,并且正在努力学习它。 现在我正在解决一个更困难的任务......

我有一些重复字段的表单(并非所有字段都是可重复的)。 我从整个表单中得到这个输出:

JSON:

{
    "material": [
        {
            "reference": "11",
            "mnozstvi": "25",
            "level": "1"
        },
        {
            "reference": "56",
            "mnozstvi": "88",
            "level": "2"
        },
        {
            "reference": "44",
            "mnozstvi": "123",
            "level": "1"
        }
    ],
    "pozice": "581",
    "poznamka": "Test",
    "cas": "1619965495",
    "skladnik": "7"
}

解码为数组:

Array
(
    [material] => Array
        (
            [0] => Array
                (
                    [reference] => 11
                    [mnozstvi] => 25
                    [level] => 1
                )

            [1] => Array
                (
                    [reference] => 56
                    [mnozstvi] => 88
                    [level] => 2
                )

            [2] => Array
                (
                    [reference] => 44
                    [mnozstvi] => 123
                    [level] => 1
                )

        )

    [pozice] => 581
    [poznamka] => Test
    [cas] => 1619965495
    [skladnik] => 7
)

我要做的就是将这些值插入 MySQL 数据库中的一个表中。 每种材料占一行,并将其他字段值(pozice、poznamka、cas、skladnik)添加到每一行。

所以每一行将是:reference、mnozstvi、level、pozice、poznamka、cas、skladnik

我知道这对你来说可能很容易,但我完全迷失了......

非常感谢您的回答和帮助。

【问题讨论】:

    标签: php mysql arrays multidimensional-array


    【解决方案1】:

    您可以使用 foreach 循环作为材料键,然后使用插入,如下所示:

    $collection = array
    (
        [material] => Array
            (
                [0] => Array
                    (
                        [reference] => 11
                        [mnozstvi] => 25
                        [level] => 1
                    )
    
                [1] => Array
                    (
                        [reference] => 56
                        [mnozstvi] => 88
                        [level] => 2
                    )
    
                [2] => Array
                    (
                        [reference] => 44
                        [mnozstvi] => 123
                        [level] => 1
                    )
    
            )
    
        [pozice] => 581
        [poznamka] => Test
        [cas] => 1619965495
        [skladnik] => 7
    );
    
    foreach ($collection['material'] as $materialData) {
      //here you can use variables as below.
      echo $materialData['reference'];
      echo $materialData['mnozstvi'];
      echo $materialData['level'];
      echo $collection['pozice'];
      echo $collection['poznamka'];
      echo $collection['cas'];
      echo $collection['skladnik'];
      // you can use variables as above shared syntax and can write your sql insertion code.
    }
    

    【讨论】:

    • 非常感谢!!工作很棒!我有很多东西要学习并了解数据结构。
    • @MichalČabala 请接受答案并投票 :)
    • 答案已接受,已投票,但我的投票声望不足,但已记录 ;-)
    猜你喜欢
    • 2017-06-21
    • 2014-10-31
    • 2011-12-06
    • 2017-05-18
    • 2015-06-08
    • 1970-01-01
    • 2015-12-21
    • 2013-04-13
    • 2013-10-06
    相关资源
    最近更新 更多