1
有兩個表,其中有一個關係(一到多)。有Meals
表,其中包含早餐(id: 1
),早午餐(id: 2
),午餐(id: 3
),茶(id: 4
),晚餐(id: 5
)和晚餐(id: 6
)等值。然後有Foods
表,其中包含各種食物,並且每種食物(即漢堡)通過外鍵與特定類型的餐(即午餐)相關聯。所以,排idfood: 12; idmeal: 3; foodname: "Hamburger"
將意味着"Hamburger"
是Lunch
膳食類型。
我創建了一個XML生成器文件,它將整個Food
表的內容拖入一個XML文件中。問題是我想從Meal
表中爲每個XML內的食物元素將idmeal
外鍵值轉換爲實際餐名。
簡單的方法是包含來自Food
表的外鍵編號,但這樣會太神祕(即漢堡包在3次時間內被吃掉)。相反,我想根據外鍵編號進行設置 - XML將從Meals
表(mealname
)中插入正確的值到包含食品的XML文件中,以便我可以打印出類似於「午餐期間吃漢堡包」時間」。
GenerateXML.php:
<?php
require("includes/credentials.php");
$doc = new DOMDocument("1.0");
$node = $doc->createElement("foods");
$parnode = $doc->appendChild($node);
$connection=mysql_connect($host, $usr, $pass);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
$query = "SELECT * FROM food";
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
header("Content-type: text/xml");
while ($row = @mysql_fetch_assoc($result)){
$node = $doc->createElement("food");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("idfood", $row['idfood']);
$newnode->setAttribute("idmeal", $row['idmeal']);
$newnode->setAttribute("foodname", $row['foodname']);
}
echo $xmlfile = $doc->saveXML();
?>