gpt4 book ai didi

php - 基于两个或更多表中的数据生成单个 XML 文件

转载 作者:行者123 更新时间:2023-11-29 07:00:39 24 4
gpt4 key购买 nike

diagram

有两个表,它们之间是一对多的关系。有 Meals 表,其中包含 Breakfast(id: 1)、Brunch(id: 2)、Lunch(id : 3)、茶(id: 4)、晚餐(id: 5)和晚餐(id: 6)。然后是 Foods 表,其中包含各种食物,每种食物(即汉堡包)都通过外键链接到特定类型的膳食(即午餐)。所以,行 idfood: 12;正餐:3; foodname: "Hamburger" 表示"Hamburger"Lunch 膳食类型。

我创建了一个 XML 生成器文件,它将整个 Food 表的内容提取到一个 XML 文件中。问题是我想将 idmeal 外键值转换为 XML 中每个食物元素的 Meal 表中的实际膳食名称。

简单的方法是包含来自 Food 表的外键编号,但这太神秘了(即汉堡包在 3 时间内被吃掉)。相反,我想根据外键编号来实现它 - XML 会将 Meals 表(mealname)中的正确值插入到那个 XML 文件中食物,以便我可以打印类似“午餐时间吃汉堡包”的内容。

生成 XML.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();

?>

最佳答案

在您的查询中加入表以利用您的 FK 关系。

Select meals.mealname, food.foodname from food join meals on (food.mealid = meals.mealid)

关于php - 基于两个或更多表中的数据生成单个 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10322788/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com