2014-01-17 51 views
0

我從一個MySQL表獲取的一組記錄,然後它在XML文件中存儲如下:從表中提取數據,並將其保存在一個XML文件

while($rows = mysqli_fetch_array($result)) 
{ 
$deviceNumber=$rows['deviceid']; 
$videoNumber=$rows['videoid']; 
$paymentDate=$rows['paymentdate']; 
$paymentTime=$rows['timenow']; 

$xml = new DOMDocument(); 
$xmlroot = $xml->createElement("xml"); 
$payments = $xml->createElement("payments"); 
$deviceid = $xml->createElement("deviceid", $deviceNumber); 
$payments->appendChild($deviceid); 
$videonumber = $xml->createElement("videonumber"); 
$videoid = $xml->createElement("videoid", $videoNumber); 
$payments->appendChild($videoid); 
$paymentdate = $xml->createElement("paymentdate"); 
$paiddate = $xml->createElement("paiddate", $paymentDate); 
$payments->appendChild($paiddate); 
$paymenttime = $xml->createElement("paymenttime"); 
$timenow = $xml->createElement("timenow", $paymentTime); 
$payments->appendChild($timenow); 
$xmlroot->appendChild($payments); 
$xml->appendChild($xmlroot); 

//Save the XML file 
$xml->save("userPaymentDetails.xml"); 
    } 

上述方法的問題,它只保存一條記錄如下:

<xml> 
<payments> 
<deviceid>43CA3KZXYQGBK</deviceid> 
<videoid>1234567</videoid> 
<paiddate>2014-01-09</paiddate> 
<timenow>19:38:19</timenow> 
</payments> 
</xml> 

我想要在XML文件中有多個值。 我想實現:

<xml> 
<payments> 
<deviceid>43CA3KZXYQGBK</deviceid> 
<videoid>1234567</videoid> 
<paiddate>2014-01-09</paiddate> 
<timenow>19:38:19</timenow> 
</payments> 
<payments> 
<deviceid>76QL6DFBAQHJL</deviceid> 
<videoid>1348921</videoid> 
<paiddate>2014-01-10</paiddate> 
<timenow>10:20:12</timenow> 
</payments>  
<payments> 
<deviceid>93CH3GHTYQGPM</deviceid> 
<videoid>890345</videoid> 
<paiddate>2014-01-15</paiddate> 
<timenow>14:32:40</timenow> 
</payments> 
</xml> 

我在做什麼錯了?

回答

0

您可以在while循環中創建XML文件,以便每個週期覆蓋現有數據。您應該在循環外部創建xml(XMLDocument和根元素)並將其保存在循環之後。

+0

我同意,做到了,現在運行良好。謝謝。 – mutiemule

0

您是否試過保留$ xml-> save(「userPaymentDetails.xml」);和$ xml = new DOMDocument();跳出循環。如果是,那麼會發生什麼。

+0

我曾試過這個,問題是,它創建了所有的節點,所以我不得不採取'$ xml = new DOMDocument(); $ xmlroot = $ xml-> createElement(「xml」);'在循環前面和'$ xml-> appendChild($ xmlroot); $ xml-> save(「userPaymentDetails.xml」);'在循環之後。謝謝。現在它運作良好。 – mutiemule

相關問題