2014-01-17 3 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

Вы создаете XML-файл в цикле while, чтобы перезаписывать существующие данные каждый цикл. Вы должны создать 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

Смежные вопросы