За последние 24 часа нас посетили 17834 программиста и 1614 роботов. Сейчас ищут 1450 программистов ...

Как поместить данные из xml в mysql?

Тема в разделе "PHP для новичков", создана пользователем Erikson, 12 апр 2009.

  1. Erikson

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

    С нами с:
    7 апр 2007
    Сообщения:
    14
    Симпатии:
    0
    Адрес:
    СПб
    Есть куча xml'ок, надо данные из них поместить в базу mysql. xml'ки большие, по 3 метра. Кроме писания огромного кода ничего уже в голову не лезет. Может поможет кто советом?
     
  2. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    phpMyAdmin кажется умеет импортировать из XML.
     
  3. Erikson

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

    С нами с:
    7 апр 2007
    Сообщения:
    14
    Симпатии:
    0
    Адрес:
    СПб
    В phpMyAdmin экспорт в xml присутствует, а вот с импортом напряг. Или я его не нашел... Ткните носом, пожалуйста.
     
  4. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Э, да, чё-то я того. phpMyAdmin не разбирает файл при импорте.

    Тогда стоит откопать готовый класс. Например, этот вроде ничего.
     
  5. Erikson

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

    С нами с:
    7 апр 2007
    Сообщения:
    14
    Симпатии:
    0
    Адрес:
    СПб
    Наверное нужный класс, но... я полный пень в объектно-ориентированном программировании. Подскажите как он работает, что должно быть на выходе?
     
  6. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Там есть файл example.php в котором описан пример работы и test.xml для примера XML файла.

    PHP:
    1. <?php
    2. include( dirname(__FILE__) . "/class.xml2db.php");
    3.  
    4. // вызываем класс и первым параметром указываем главный элемент XML
    5. $xml2db = new xml2db("product");
    6.  
    7. // ставис путь к XML файлу
    8. $xml2db->setXMLFile("test.xml");
    9.  
    10. // устанавливаем таблицу в MySQL куда будем отправлять данные
    11. $xml2db->setTable("cellphones");
    12.  
    13. // настраиваем массиив, что (в XML)  куда (в таблице)
    14. $xml2db->setData(array
    15. (
    16.     //         xml node    type        db field        attr name
    17.     array(    "",            "attr",        "id",            "id"    ),
    18.     array(    "brand",    "node",        "manufacturer"            ),
    19.     array(    "brand",    "attr",        "type",            "type"    ),
    20.     array(    "model",    "node",        "name"    ),
    21.     array(    "price",    "node",        "price"    ),
    22. ));
    23.  
    24. // получаем запрос к БД
    25. echo "<pre>";
    26. print_r($xml2db->getQueries());
    27. echo "</pre>";
    28. ?>
     
  7. Erikson

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

    С нами с:
    7 апр 2007
    Сообщения:
    14
    Симпатии:
    0
    Адрес:
    СПб
    Стыдно признаться, но просидел все воскресенье... Примерно разобрался, но не понятно по какому принципу строится массив:

    # $xml2db->setData(array
    # (
    # // xml node type db field attr name
    # array( "", "attr", "id", "id" ),
    # array( "brand", "node", "manufacturer" ),
    # array( "brand", "attr", "type", "type" ),
    # array( "model", "node", "name" ),
    # array( "price", "node", "price" ),
    # ));
     
  8. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Просидел бы - разобрался бы. Тебе даже элементарный пример и то было лень смотреть.
     
  9. Erikson

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

    С нами с:
    7 апр 2007
    Сообщения:
    14
    Симпатии:
    0
    Адрес:
    СПб
    Зря так осуждаешь огульно. Сидел сутки, отбросил все дела... Посижу еще, разберусь. Я настырный, хоть времени и нет. ;-) Тебе же спасибо огромное за ссылку и помощь.