2017-06-20 80 views
0

iam试图通过php从数据库中创建XML数据多边形mysql,我的xml结果只有一个数据多边形,即使mysql数据库有很多数据多边形。请帮我解决这个问题。通过从数据库中创建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>  

and that is my database table

,这是我的代码:

<?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>'; 
+2

你能告诉你的代码到目前为止(也请包括数据作为文本而不是图像) –

+0

< titik bujur =“108.1051327105”lintang =“ - 6.8589320607”/> nafis

+0

那是我的xml结果 – nafis

回答

0

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

<?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>'; 

这是很难测试,但我希望你看到,输出必须在一个过度所有元素( - 根据需要更改)。这可能是一切都在,如果是这样的话,把它移到我已经包括了这个位的地方。

+0

其作品!非常感谢先生!! – nafis

+0

@nafis很好,在这里!你能标记为正确的答案,因为它可以更容易地查看哪些问题尚未解决。谢谢 –