【问题标题】:How to update database from nest list serialize?如何从嵌套列表序列化更新数据库?
【发布时间】:2014-03-22 06:40:32
【问题描述】:

我从http://dbushell.github.io/Nestable/得到一个数据

但我不知道如何将这些值设置到数据库中。

我的表结构是这样的:

CREATE TABLE `category` (
    `id` INT(11) NOT NULL AUTO_INCREMENT,
    `title` CHAR(50) NOT NULL DEFAULT '',
    `parent_id` INT(11) NOT NULL DEFAULT '0',
    `ordering` INT(11) NOT NULL DEFAULT '0',
    PRIMARY KEY (`id`),
)

你有这个示例的 PHP 代码吗?

【问题讨论】:

  • 你必须尝试一些东西,

标签: php nested-loops jquery-nestable


【解决方案1】:

如果你的问题是插入以下数据:

[{"id":1},{"id":2,"children":[{"id":3},{"id":4},{"id":5,"children":[{"id":6},{"id":7},{"id":8}]},{"id":9},{"id":10}]},{"id":11},{"id":12}]

进入所描述的数据库,然后我建议首先使用 json_decode($given_data, true) 解析 JSON,其中 true 状态以将数组作为输出。然后递归遍历返回的树:

$given_data = '[{"id":1},{"id":2,"children":[{"id":3},{"id":4},{"id":5,"children":[{"id":6},{"id":7},{"id":8}]},{"id":9},{"id":10}]},{"id":11},{"id":12}]';

$given_arr = json_decode($given_data, true); 

print_r($given_arr); 

function create_categories(&$arr, $parent_id){
  foreach($arr as $key => $item){
    $id = $item["id"];
    $sql = "INSERT INTO email_list (id, parent_id) values ('$id', '$parent_id');";
    //mysql_query($sql) or exit(mysql_error()); 
    echo $sql."\n"; 

    if(isset($item['children'])){
      create_categories($item['children'], $id); 
    }
  }
}

create_categories($given_arr, 0); 

输出如下:

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

    [1] => Array
        (
            [id] => 2
            [children] => Array
                (
                    [0] => Array
                        (
                            [id] => 3
                        )

                    [1] => Array
                        (
                            [id] => 4
                        )

                    [2] => Array
                        (
                            [id] => 5
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 6
                                        )

                                    [1] => Array
                                        (
                                            [id] => 7
                                        )

                                    [2] => Array
                                        (
                                            [id] => 8
                                        )

                                )

                        )

                    [3] => Array
                        (
                            [id] => 9
                        )

                    [4] => Array
                        (
                            [id] => 10
                        )

                )

        )

    [2] => Array
        (
            [id] => 11
        )

    [3] => Array
        (
            [id] => 12
        )

)
INSERT INTO email_list (id, parent_id) values ('1', '0');
INSERT INTO email_list (id, parent_id) values ('2', '0');
INSERT INTO email_list (id, parent_id) values ('3', '2');
INSERT INTO email_list (id, parent_id) values ('4', '2');
INSERT INTO email_list (id, parent_id) values ('5', '2');
INSERT INTO email_list (id, parent_id) values ('6', '5');
INSERT INTO email_list (id, parent_id) values ('7', '5');
INSERT INTO email_list (id, parent_id) values ('8', '5');
INSERT INTO email_list (id, parent_id) values ('9', '2');
INSERT INTO email_list (id, parent_id) values ('10', '2');
INSERT INTO email_list (id, parent_id) values ('11', '0');
INSERT INTO email_list (id, parent_id) values ('12', '0');

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-03
    • 1970-01-01
    • 1970-01-01
    • 2019-08-21
    • 2022-01-10
    • 2016-02-09
    • 2018-11-12
    • 1970-01-01
    相关资源
    最近更新 更多