Member 12683929 Ответов: 0

Как преобразовать базу данных в XML-файл с помощью PHP в случае объединения двух и более таблиц?


Я хочу преобразовать свою базу данных wordpress в xml-код с помощью php, есть много кодов для этой проблемы, но ни один из них не работает для объединения таблиц.

Что я уже пробовал:

Я попробовал php код ниже но он не работает потому что когда я соединяю таблицы я не могу определить корневой элемент поэтому древовидная структура отсутствует

<?php
      $config['mysql_host']="localhost";
      $config['mysql_user']="user";
      $config['mysql_pass']="pass";
      $config['db_name']="name";
      $config['table_name']="tbl1";

    mysql_connect($config['mysql_host'],$config['mysql_user'],$config['mysql_pass']);
      mysql_select_db($config['db_name']) or die("unable to select database");
      $xml          = "<?xml version=\"1.0\" encoding=\"UTF-8\"  ?>";
      $root_element = $config['table_name']."s"; //users
      $xml         .= "<$root_element>";

      //select all item intable
      $sql = "SELECT * FROM tbl1 join tbl2 on tbl1.id = tbl2.id";

     $result = mysql_query($sql);
     if (!$result) {
         die('Invalid query: ' . mysql_error());
     }

     if(mysql_num_rows($result)>0)
    {
       while($result_array = mysql_fetch_assoc($result))
       {
          $xml .= "<".$config['table_name'].">";

          //loop through each key,value pair in row
          foreach($result_array as $key => $value)
          {
         //$key holds the table column name
             $xml .= "<$key>";

              //embed the SQL data in a CDATA element to avoid XML entity issues
              $xml .= "<![CDATA[$value";

             //and close the element
             $xml .= "</$key>";
           }

          $xml.="</".$config['table_name'].">";
       }
    }

    //close the root element
    $xml .= "</$root_element>";

    //send the xml header to the browser
    header ('Content-Type:text/xml; default_charset=utf-8;');

    //output the XML data
    echo $xml;
    ?>


Возможно ли это вообще? Как я могу это сделать? Любой совет очень ценится. Спасибо.

0 Ответов