親子テーブルからXMLを生成しようとしています。ここで私が達成しようとしているXML形式です。 PHPコードは1つのテーブルに対してのみ機能します。私は子テーブルからXMLを生成する方法がわかりません。私はどんな助けにも感謝します。親子テーブルのXMLデータを生成する
<SalesOrder>
<Sales>
<SalesOrderNumber>SO43660</SalesOrderNumber>
<PurchaseOrderNumber>PO18850127500</PurchaseOrderNumber>
<AccountNumber>3333</AccountNumber>
<OrderDate>2001-07-01</OrderDate>
<Details>
<SalesOrderDetailID>13</SalesOrderDetailID>
<Name>Road-650 Red, 44</Name>
<CarrierTrackingNumber>6431-4D57-83</CarrierTrackingNumber>
</Details>
<Details>
<SalesOrderDetailID>14</SalesOrderDetailID>
<Name>Road-450 Red, 52</Name>
<CarrierTrackingNumber>6431-4D57-83</CarrierTrackingNumber>
</Details>
</Sales>
</SalesOrder>
ここはPHPコードです。
$result = mysql_query("SELECT * from table1");
header("Content-Type: application/xml");
echo sqlToXml($result, "SalesOrder", "sales");
function sqlToXml($queryResult, $rootElementName, $childElementName)
{
$xmlData = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n";
$xmlData .= "<" . $rootElementName . ">";
while($record = mysql_fetch_object($queryResult))
{
$xmlData .= "<" . $childElementName . ">";
for ($i = 0; $i < mysql_num_fields($queryResult); $i++)
{
$fieldName = mysql_field_name($queryResult, $i);
$xmlData .= "<" . $fieldName . ">";
if(!empty($record->$fieldName))
$xmlData .= $record->$fieldName;
else
$xmlData .= "null";
$xmlData .= "</" . $fieldName . ">";
}
$xmlData .= "</" . $childElementName . ">";
}
$xmlData .= "</" . $rootElementName . ">";
}
ここにスキーマがあります。これらの2行の間に
SalesOrder Table SalesOrderDetail
---------------- ------------------
SalesOrderNumber Varchar(20) SalesOrderDetailID INT
PurchaseOrderNumber Varchar(20) SalesOrderNumber Varchar(20)
AccountNumber Varchar(20) Name Varchar(30)
OrderDate Date CarrierTrackingNumber Varchar(30)
にXML文字列(
$xmlData
)リンクに追加しますが、子テーブルとはどういう意味ですか?スキーマとそれぞれのデータの例を含めることができます...ありがとう – ManseUK
私はスキーマで更新しました。サンプルデータは、私のXMLファイルにあります。ご協力いただきありがとうございます。 – nav100