将多维数组中的值插入到数据库中

时间:2021-05-02 15:56:04

标签: php mysql arrays multidimensional-array

我对 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

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

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

1 个答案:

答案 0 :(得分:0)

您可以使用 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.
}
相关问题