まず、代替コードは必要ありません。 以下のコードを使用して、データベーステーブルからxmlファイルにデータを書き出したいが、正しいxmlタグを使用して "john"と "123"を取得しているだけで、2番目のforeach()最初にforeach()を呼び出すとテーブルが表示されます。xmlにデータベーステーブルを書き込む
<?php
$dbhandle = sqlite_popen("propertydb", 0666, $err_msg);
if(!$dbhandle) die("Could not open the database");
$query = "CREATE TABLE property(pCode VARCHAR(8), price VARCHAR(6),
iFile VARCHAR(15), visits VARCHAR(3))";
if(!sqlite_query($dbhandle, $query)){ echo "table not created (maybe already
created)";
}
$query = sqlite_query($dbhandle, 'SELECT * FROM property');
$result = sqlite_fetch_all($query, SQLITE_ASSOC);
foreach ($result as $arow) {
echo '<br> Postcode: ' . $arow['pCode'] . ' Price: ' . $arow['price'] .
' Image File: ' . $arow['iFile'] . ' Visits: ' . $arow['visits'];
}
$outfilepointer = fopen("property.xml","w");
$outtext = "<estateagent> \n";
$outtext .= "<agentname>john</agentname> \n";
$outtext .= "<agentphone>123</agentphone> \n";
foreach ($result->property as $oneproperty)
{
$propertyname = $oneproperty->propertyname;
outtext .= '<property><postcode> $arow["pCode"] </postcode>
<price> $arow["price"]</price> <imagefile> $arow["iFile"] </imagefile> <visits>
$arow["visits"]
</visits> </property> \n';
}
$outtex .= "</estateagent>";
fwrite($outfilepointer, $outtext);
fclose($outfilepointer);
sqlite_close($dbhandle);
?>
これは、私はちょうどあなたのコードを使用してみましたし、XMLタグが現れない...私の出力がどうあるべきか
<estateagent>
<agentname></agentname>
<agentphone></agentphone>
<property>
<postcode></postcode><price></price><imagefile></imagefile><visits></visits>
</property>
<property>...</property>
<property>...</property>
</estateagent>
"警告:無効な引数がforeach()内で提供されました..." –
解決策を提示するために私の答えを編集しました。 – F21