T
T
Timur Mannapov2020-07-31 11:41:41
PHP
Timur Mannapov, 2020-07-31 11:41:41

Output data to table in phpmyadmin?

Two xml files. I want to parse them into one table (phpmyadmin). Separately figured out, but together do not converge.

code for movies
<?php
  //соединяем две таблицы 
  include 'indexserials.php';
  // Создаем функцию которая вставляет данные в БД
  
  function insert($name, $desc, $year, $rating, $poster, $category_id) {
    //подключаемся к БД
    $mysqli = new mysqli('localhost', 'root', '', 'kinomonster');

    // Проверка на ошибки

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

    // Устанавливаем кодировку

    $mysqli->set_charset('utf8');
    

    // Запрос
 
    $query = "INSERT INTO movie VALUES(null, '$name', '$desc', '$year', '$rating', '$poster', Now(), '$category_id')";

    $result = false;

    //Делаем проверку
    if($mysqli->query($query) or die($mysqli->error)) {
      $result = true;
    }
    //Возвращаем результат
    return $result;
  }

  // Создаем переменную где и подключаем ее к xml и превращаем в многомерный массив
  $xml = simplexml_load_file("xml_files/movies.xml") or die("Error: cannot create object");

  //echo count($xml);

  //Создаем переменные чтобы было их подставлять для Insert в легкой форме
  $title = null;
  $title_orign = 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 так как у некоторых фильмов нет рейтинга
    if($movie->imdb) {
      $rating = $movie->imdb->attributes()['rating']; 
    } else {
      $rating = null;
    }
    
    insert($title, $title_orign, $year, $rating, $post, 1);	
  }


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

?>


something is wrong here
<?php

  // Создаем функцию которая вставляет данные в БД
  
  function insert ($name, $desc, $year, $rating, $poster, $category_id) {
    //подключаемся к БД
    $mysqli = new mysqli('localhost', 'root', '', 'kinomonster');

    // Проверка на ошибки

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

    // Устанавливаем кодировку

    $mysqli->set_charset('utf8');
    

    // Запрос
 
    $query = "INSERT INTO movie VALUES(null, '$name', '$desc', '$year', '$rating', '$poster', Now(), '$category_id')";

    $result = false;

    //Делаем проверку
    if($mysqli->query($query) or die($mysqli->error)) {
      $result = true;
    }
    //Возвращаем результат
    return $result;
  }

  // Создаем переменную, для фильмов где и подключаем ее к xml и превращаем в многомерный массив
  $xml_films = simplexml_load_file("xml_files/movies.xml") or die("Error: cannot create object");

  //Создаем переменные чтобы было их подставлять для Insert в легкой форме
  $title = null;
  $title_orign = null;
  $post = null;
  $rating = null;
  $year = null;
  
  // Делаем цикл для того, чтобы получить постер
  foreach ($xml_films 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 так как у некоторых фильмов нет рейтинга
    if($movie->imdb) {
      $rating = $movie->imdb->attributes()['rating']; 
    } else {
      $rating = null;
    }
    
    insert($title, $title_orign, $year, $rating, $post, 1);	
  }

  // Создаем переменную для сериалов где и подключаем ее к xml и превращаем в многомерный массив
  $xml_serials = simplexml_load_file("xml_files/serials.xml") or die("Error: cannot create object");
  //echo count($xml);

  //Создаем переменные чтобы было их подставлять для Insert в легкой форме
  $title = null;
  $title_orign = null;
  $post = null;
  $rating = null;
  $year = null;
  
  // Делаем цикл для того, чтобы получить постер
  foreach ($xml_serials 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 так как у некоторых фильмов нет рейтинга
    if($movie->imdb) {
      $rating = $movie->imdb->attributes()['rating']; 
    } else {
      $rating = null;
    }
    
    insert($title, $title_orign, $year, $rating, $post, 2);	
  }


  echo "<pre>";
  print_r($xml_films);
  echo "</pre>";
  echo "<pre>";
  print_r($xml_serials);
  echo "</pre>";

?>

spoiler
5f23d9282f311866553905.png

Answer the question

In order to leave comments, you need to log in

1 answer(s)
S
Stalker_RED, 2020-07-31
@Stalker_RED

mysql has built in import from xml

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question