Вставка значений JSON в MYSQL с помощью PHP

#php #mysql #json

#php #mysql #json

Вопрос:

У меня есть эта строка JSON:

 $json = '{
    "bigprodlist": {
        "prods": [
            {
                "code": 55,
                "name": "Comix Book",
                "link": "weblink"
            },
            {
                "code": 85,
                "name": "IT Book",
                "link": "weblink"
            },
            {
                "code": 95,
                "name": "Manga Book",
                "link": "weblink"
            }

        }
    }';
  

Я хотел бы распечатать каждую отдельную запись на веб-странице с использованием php, а затем сохранить эти записи в базе данных mysql.
В БД уже есть поля «код», «имя» и «ссылка»..

Это то, что я безуспешно пытался (для печати материала на странице):

 $obj = json_decode($json,true);
echo ($obj["bigprodlist"]["prods"][0]["name"]);
  

Большое вам спасибо за помощь

Комментарии:

1. У вас есть непревзойденный «[» в вашей строке json.

2. sandbox.onlinephpfunctions.com/code/…

3. Хотите расширить свой вопрос? Вы упомянули MySQL.

4. Черт, я был так близко…..

Ответ №1:

Во-первых, исправьте пропущенную конечную скобку JSON, которая приводит к сбою декодирования JSON (добавьте ] после данных prods ), затем расширьте свой оператор echo с помощью некоторых циклов foreach, чтобы распечатать данные. Это всего лишь простой пример, который поможет вам на правильном пути:

 foreach ($obj["bigprodlist"]["prods"] as $p):
    echo "<div>";
    foreach ($p as $name=>$value):
        echo "<span>".$name.": ".$value."</span>";
    endforeach;
   echo "</div>";
endforeach;
  

Затем вы можете использовать ту же процедуру цикла для получения данных в вашей БД.

Ответ №2:

Вам нужно использовать json_last_error(); http://no1.php.net/manual/en/function.json-last-error.php

Отладка:

 $obj = json_decode($json,true);
var_dump($obj, json_last_error());
  

Вам не хватает ] :

 $json = '{
    "bigprodlist": {
        "prods": [
            {
                "code": 55,
                "name": "Comix Book",
                "link": "weblink"
            },
            {
                "code": 85,
                "name": "IT Book",
                "link": "weblink"
            },
            {
                "code": 95,
                "name": "Manga Book",
                "link": "weblink"
            }
        ] //missing!
    }
}';
  

Ответ №3:

Где вы получили вывод json? Это недопустимо:

 Parse error on line 18:
...          }        }    }
----------------------^
Expecting ',', ']'
  

Проверьте свой json на http://jsonlint.com /