Как загнать xml в mysql базу?

Тема в разделе "PHP", создана пользователем web-investor, 12 авг 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    501
    Симпатии:
    113
    Здравствуйте!

    Подскажите, пожалуйста, как можно готовый каталог товаров в xml загнать в mysql базу?
    В общем нужно из xml доставать "название товара", "описание", "id товара" (должно совпадать с именем изображения).

    xml база во вложении. Подскажите, как это сделать на php.
     

    Вложения:

    • 28415.rar
      Размер файла:
      36,8 КБ
      Просмотров:
      11
  2. Graph33

    Graph33 Создатель

    Регистр.:
    4 авг 2010
    Сообщения:
    33
    Симпатии:
    0
  3. web-investor

    web-investor

    Регистр.:
    19 окт 2007
    Сообщения:
    501
    Симпатии:
    113
    Блин, может есть какие-нибудь материалы на русском языке?
     
  4. chang

    chang

    Регистр.:
    20 ноя 2009
    Сообщения:
    363
    Симпатии:
    117
    да полно нужно только уметь найти
     
  5. fredis69

    fredis69 Постоялец

    Регистр.:
    25 окт 2008
    Сообщения:
    84
    Симпатии:
    2
    Вот готовое решение по добавлению информации в БД, но для начала необходимо xml файл преобразовать в "csv файл"
    1Файл с формой для выбора csv файла:
    PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <
    html>
    <
    head>
    <
    meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <
    title>Импорт данных из CSV файла в базу MySQL</title>
    </
    head>
    <
    body>
    <
    form action="goto.php" method="post" enctype="multipart/form-data">
    <
    label>Выберите файл для импорта:</label><br>
    <
    input name="file" type="file" size="50"><br>
    <
    input name="Load" type="submit" value="Load">
    </
    form>
    </
    body>
    </
    html>
    2 файл, который добавляет данные в БД:
    PHP:
    <?php
    include ("addition/database.php"); //соединяемся с БД
    $url $_FILES["file"]["name"];
    echo 
    'Запись из файла: <b>'.$url.'</b><br>'// Имя файла
    $file_exp explode("."$_FILES["file"]["name"]);
    if (
    $file_exp[1] != "csv") die("Неправильный формат файла."); // Допустимы файлы только с расширением csv
     
    copy($_FILES["file"]["tmp_name"],"/usr/home/hosting/htdocs/price/".$_FILES["file"]["name"]); // сохраняем файл в папку price? указать свой путь и папку
    $handle fopen("price/".$url"r"); // Файл csv открываем из папки price
    while ($data fgetcsv($handle1000";")) { 
                    
    $id_product $data[3];
                    
    $result mysql_query("SELECT id_product FROM product WHERE id_product='$id_product'",$db); // проверяем если в БД уже есть продукт с таким id продукта (точно такой же продукт) то не заносим в БД, можно проверять по другим данным измените на свои. 
                    
    $row mysql_fetch_array($result);
                    if(!
    $row)
                    {
    $sql mysql_query ("INSERT INTO product (`cat`, `subcat`, `brand`, `id_product`, `code_manufacture`, `title`, `price`) VALUE ('$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]', '$data[5]', '$data[6]')"); // Всё что в запросе, меняем на свои данные
                    
    }
    }
    echo 
    "Загрузка прошла успешно!<br>"
    ?>
     
    Sarkerdo нравится это.
  6. WAYS

    WAYS Постоялец

    Регистр.:
    15 май 2010
    Сообщения:
    129
    Симпатии:
    61
    Это делается очень просто, для начала нужно найти готовый/написать простенький xml парсер, лучше конечно написать свой. После парсинга пишешь все в базу.
     
Статус темы:
Закрыта.