За последние 24 часа нас посетили 17380 программистов и 1698 роботов. Сейчас ищут 1799 программистов ...

Импорт из excel в sql таблицы через скрипт php

Тема в разделе "PHP и базы данных", создана пользователем gringo_beta, 17 мар 2021.

Метки:
  1. gringo_beta

    gringo_beta Новичок

    С нами с:
    17 мар 2021
    Сообщения:
    14
    Симпатии:
    0
    ок спасибо
     
  2. Drunkenmunky

    Drunkenmunky Активный пользователь

    С нами с:
    12 авг 2020
    Сообщения:
    1.487
    Симпатии:
    281
    PHP:
    1. <?php
    2. function create_query_to_movie($xml_filename)
    3. {
    4. $simplexml = simplexml_load_file($xml_filename);
    5.  
    6. if ($simplexml === FALSE) {
    7.     echo "There were errors parsing the XML file.\n";
    8.     foreach(libxml_get_errors() as $error) {
    9.         echo $error->message;
    10.     }
    11.     exit;
    12. }
    13.  
    14. $query = "CREATE TABLE IF NOT EXISTS `movie` (
    15.  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
    16.  `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
    17.  `orig_name` varchar(255) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
    18.  `description` text COLLATE utf8_unicode_ci,
    19.  `year` int(4) NOT NULL DEFAULT '0',
    20.  `rating` float DEFAULT NULL,
    21.  `poster` varchar(255) CHARACTER SET utf8 NOT NULL DEFAULT '',
    22.  `add_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
    23.  `category_id` tinyint(4) NOT NULL DEFAULT '0',
    24.  PRIMARY KEY (`id`)
    25. ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;".PHP_EOL;
    26.  
    27. $query .= 'INSERT INTO `movie` (`name`, `orig_name`, `year`, `rating`, `poster`,`category_id`) '.PHP_EOL.'VALUES ';
    28.  
    29. //ниже местами не помешает addslashes()
    30.  
    31. foreach($simplexml as $movie)
    32. {
    33. $title = isset($movie->title_russian) ? $movie->title_russian : '';
    34. $title_orign = isset($movie->title_original) ? $movie->title_original : '';
    35. $year = isset($movie->year) ? $movie->year : '';
    36. $rating = isset($movie->imdb) ? "'".$movie->imdb->attributes()->rating."'" : 'NULL';
    37. $poster = isset($movie->poster->big) ? $movie->poster->big->attributes()->url : '';
    38.  
    39. $query .= sprintf("('%s', '%s', '%s', %s, '%s', '%s'),\n", $title, $title_orign, $year, $rating, $poster, 1);
    40. }
    41. return chop($query, ",\n").';';
    42. }
    43.  
    44.  
    45. echo '<pre>';
    46. echo create_query_to_movie('movies.xml');
    47. ?>