Как вставить все поля из xml файла с помощью insert в mysql?

1

Здравствуйте. В одном из уроков нужно было вывести поле descriptions в отдельную таблицу по примеру с categories, что я и сделал.

После прохождения 62 урока все данные загрузились нормально, но последнее поле description_id осталось со значениями 0, а хотелось бы чтобы данные подтянулись от title_original как в уроке.

Помогите пожалуйста найти ошибку.

index.php:

<?php

function insert($name, $year, $rating, $poster, $category_id, $description_id) {
$mysqli = new mysqli('localhost', 'root', '', 'kinomonster');

if(mysqli_connect_errno()) {
printf('Соединение не установлено');
exit();
}

$mysqli->set_charset('utf8');

$query = "INSERT INTO movie VALUES(null, '$name', '$year', '$rating', '$poster', Now(), '$category_id', '$description_id')";

$result = false;

if($mysqli->query($query)) {
$result = true;
}
return $result;
}

$xml = simplexml_load_file("xml/movies.xml") or die("Error, cannot create object");

$title = null;
$title_origin = null;
$post = null;
$rating = null;
$year = null;

foreach ($xml as $movie_key => $movie) {
$title = $movie->title_russian;
$title_orign = $movie->title_original;
$year = $movie->year;


foreach ($movie->poster->big->attributes() as $poster_key => $poster) {
$post = $poster;
}

if ($movie->imdb) {
$rating = $movie->imdb->attributes()['rating'];

} else {
$rating = null;
}

insert($title, $year, $rating, $post, 1, $title_orign);
}

echo "<pre>";
print_r($xml);
echo "</pre>";
?>
php
xml

3 ответов

1

Попробуйте посмотреть, что у вас находится в description_id. Просто без вставки выведите в браузер и посмотрите.

1

Благодарю за отклик. Пока не помогло. Буду дальше искать причину.

2

Попробуйте вместо

$query = "INSERT INTO movie VALUES(null, '$name', '$year', '$rating', '$poster', Now(), '$category_id', '$description_id')";

писать такой запрос insert:

$query = "INSERT INTO movies (name, desc, year, rating, poster, add_date, category_id)
VALUES('$name','$desc','$year','$rating','$poster',Now(),'$category_id')";

Сергей (преподаватель) писал где то про явное указание sql запросу, в какие поля нужно вставлять данные. Если автоинкримент у таблицы правильно настроен, он должен автоматически айди проставлять.

Sign up or Log in to write an answer