通过 PHP 从数据库 MySQL 创建 XML 数据多边形



我试图通过 PHP 从数据库 mysql 创建 XML 数据多边形,我的 XML 只产生一个数据多边形,即使 MySQL 数据库有很多数据多边形。 请帮助我如何解决它。

this is my results xml :
<bangunan><titik bujur="108.1052017828" lintang="-6.8589564633"/><titik bujur=" 108.1052345542" lintang="-6.8588736944"/><titik bujur=" 108.1052901005" lintang="-6.8588919206"/><titik bujur=" 108.1053264106" lintang="-6.8587653305"/><titik bujur=" 108.1052012876" lintang="-6.8587287935"/><titik bujur=" 108.1051327105" lintang="-6.8589320607"/><titik bujur=" 108.1051327105" lintang="-6.8589320607"/><titik bujur=" 108.1052017828" lintang="-6.8589564633"/><titik bujur=" 108.1052017828" lintang="-6.8589564633"/></bangunan>    

那是我的数据库表

这是我的代码:

<?php
include "koneksibangunan.php";
$x=mysql_query("select * from bangunan");
$y=mysql_fetch_array($x);
$id=$y['ID'];
$nama=$y['Nama'];
$batas=$y['Koordinat'];
$urai=explode(',0',$batas);
$max=count($urai)-1;
//konversi ke array 2 D, menghasilkan $koor[i][j]
for($i=0;$i<$max;$i++)
{
    for($j=0;$j<2;$j++)
    {
        $koor[$i]=explode(',',$urai[$i]);
}}
//konversi ke format XML
header("Content-type: text/xml");
echo '<bangunan>';
for($i=0;$i<$max;$i++)
{
 echo '<titik ';
    for($j=0;$j<2;$j++)
    {
        if($j==1)
            echo 'lintang="' .$koor[$i][$j]. '" ';
        else
         echo 'bujur="' . $koor[$i][$j] . '" ';
    }
   echo '/>';
    }
echo '</bangunan>';

代码需要遍历每一行,所以当你做一个选择时,读取每一行并处理内容......

<?php
include "koneksibangunan.php";
$x=mysql_query("select * from bangunan");
header("Content-type: text/xml");
echo '<data>';
while($y=mysql_fetch_array($x))  {
    $id=$y['ID'];
    $nama=$y['Nama'];
    $batas=$y['Koordinat'];
    $urai=explode(',0',$batas);
    $max=count($urai)-1;
    //konversi ke array 2 D, menghasilkan $koor[i][j]
    for($i=0;$i<$max;$i++)    {
        for($j=0;$j<2;$j++)    {
            $koor[$i]=explode(',',$urai[$i]);
        }
    }
    //konversi ke format XML
    echo '<bangunan>';
    for($i=0;$i<$max;$i++)    {
        echo '<titik ';
        for($j=0;$j<2;$j++)    {
            if($j==1)
                echo 'lintang="' .$koor[$i][$j]. '" ';
            else
                echo 'bujur="' . $koor[$i][$j] . '" ';
        }
        echo '/>';
    }
    echo '</bangunan>';
}
echo '</data>';

这很难测试,但我希望您看到输出必须在整体元素下( - 根据需要更改(。 可能是所有内容都在下面,如果是这样,只需将其移动到我包含位的位置即可。

最新更新