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