Добрый день, есть 2 таблицы:
№1 films -> id, title, summary
№2 donor -> field,...., data
вот в таблице donor, в последнем поле содержится информация о фильме в виде json массива
к примеру:
{'title': 'Женись на мне, чувак', 'title_en': 'Épouse-moi mon pote', 'year': 2017, 'tagline': 'Дружба - настоящая. Брак - фиктивный', 'description': 'Единственный шанс для провалившего экзамен студента остаться в Париже – это фиктивный брак. Однако, найти невесту так быстро практически невозможно. И тогда на помощь приходит лучший друг.', 'poster_url': 'https://st.kp.yandex.net/images/film_iphone/iphone360_999563.jpg', 'duration': 92, 'countries': ['Франция'], 'genres': ['комедия'], 'kinopoisk_rating': 6.6, 'kinopoisk_votes': 5762, 'imdb_rating': 6.1, 'imdb_votes': 2150, 'premiere_ru': '2017-11-09', 'premiere_world': '2017-10-25', 'minimal_age': 18, 'actors': ['Тарек Будали', 'Филипп Лашо', 'Шарлотта Габрис', 'Анди', 'Давид Марсе', 'Жюльен Аррути', 'Байа Белаль', 'Филипп Дюкен', 'Зинедин Суалем', 'Дуду Маста'], 'directors': ['Тарек Будали'], 'producers': ['Кристоф Сервони', 'Марк Фисцман', 'Кристиан Бомар'], 'writers': ['Тарек Будали', 'Пьер Дудан'], 'composers': ['Максим Депре', 'Мишель Торджман'], 'editors': ['Антуан Варей'], 'designers': ['Сэмюэл Тессер', 'Тьерри Пулет', 'Тьерри Руксель'], 'operators': ['Антуан Марто']}
мне нужно раскидать эти данные по таблице films
подскажите каким образом это можно сделать, или mysql не сможет работать с JSON и нужно парсить через PHP?
Через php сделал кустарно так:
for ($i=0; $i < 39553; $i++) {
$result = $this->db->query('SELECT `material_data`, `kinopoisk_id` FROM `x` WHERE `id` = '.$i.' LIMIT 1');
while ($row = $result -> fetch ()) {
$pre = utf8_decode($row['material_data'])
$json = json_decode($pre);
if (!empty($json['description']) and !empty($row['kinopoisk_id'])) {
$this->db->query('UPDATE `films` SET `summary` = '.$json['description'].' WHERE `kp_id` = '.$row['kinopoisk_id']);
}
}
}
Странно но после декодирования массив с данными превращается в NULL NULL NULL NULL NULL
Проверил json-ы выборочно, все валидные
Добавил utf8_decode(), тоже не помогло