как добавить данные из XML в базу данных - PullRequest
0 голосов
/ 24 сентября 2019

Noobie здесь, извинения, если этот вопрос глупо ...

Я хочу добавить данные из файла XML в мою базу данных.Я попытался использовать PHP и AJAX

У меня есть база данных с именем изображения, которая имеет столбцы: image_name, xml_name.

У меня есть XML-файл со следующими данными:

<?xml version="1.0"?>

-<annotation>

 <folder>./fashion</folder>

 <filename>fashion14.jpg</filename>

 <path>./fashion/fashion14.jpg</path>

 </annotation>

Код php, который я пробовал:

import.php:

<?php

$output = '';

if(isset($_FILES['file']['name']) &&  $_FILES['file']['name'] != '')
{
    $valid_extension = array('xml');
    $file_data = explode('.', $_FILES['file']['name']);
    $file_extension = end($file_data);
    if(in_array($file_extension, $valid_extension))
    {
        $data = simplexml_load_file($_FILES['file']['tmp_name']);
        $connect = new PDO('mysql:host=localhost;dbname=registration','root', '');
        $query = "INSERT INTO images(filename, xml_name)
                            VALUES(:filename,:xml_name);";
        $statement = $connect->prepare($query);
        for($i = 0; $i < count($data); $i++)
        {
            $statement->execute(
            array(
                 ':filename'  => $data->images[$i]->image_name,
                 ':xml_name' => $data->images[$i]->xml_name
                  )
            );
        }
        $result = $statement->fetchAll();
        if(isset($result))
        {
            $output = '<div class="alert alert-success">Import Data Done</div>';
        }
    } else {
        $output = '<div class="alert alert-warning">Invalid File</div>';
    }
} else {
    $output = '<div class="alert alert-warning">Please Select XML File</div>';
}

echo $output;
?>

html-часть:

index.php:

   <?php
    //index.php 
     ?>
     <!DOCTYPE html>
     <html>
     <head>

     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
     <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
     </head>
     <body>
     <br />
     <div class="container">
     <div class="row">
     <h2 align="center">How to Import XML Data into Mysql Table Using Ajax PHP</h2>
     <br />
     <div class="col-md-9" style="margin:0 auto; float:none;">
     <span id="message"></span>
     <form method="post" id="import_form" enctype="multipart/form-data">
     <div class="form-group">
     <label>Select XML File</label>
     <input type="file" name="file" id="file" />
     </div>
     <br />
     <div class="form-group">
     <input type="submit" name="submit" id="submit" class="btn btn-info" value="Import" />
     </div>
     </form>
     </div>
     </div>
     </div>
     </body>
     </html>
     <script>
     $(document).ready(function(){
     $('#import_form').on('submit', function(event){
     event.preventDefault();

     $.ajax({
      url:"import.php",
      method:"POST",
      data: new FormData(this),
      contentType:false,
      cache:false,
      processData:false,
      beforeSend:function(){
      $('#submit').attr('disabled','disabled'),
      $('#submit').val('Importing...');
        }, 
      success:function(data)
     {
     $('#message').html(data);
     $('#import_form')[0].reset();
     $('#submit').attr('disabled', false);
     $('#submit').val('Import');
     }
      })

    setInterval(function(){
    $('#message').html('');
    }, 5000);

    });
    });
    </script>

В результате я хочу сохранить имя файла xml в столбце «xml_name» и имя файла свойства xml в «filename»столбец таблицы.Может ли кто-нибудь помочь мне сделать это ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...