【发布时间】:2025-12-01 01:15:02
【问题描述】:
我需要通过解释代码来帮助我理解如何处理多个表:
有几个表叫
公寓、物业、类别、开发商
- 公寓列(id、category_id、developer_id、property_id、 标题、价格)
- 类别列(id、title)
- 开发者栏目(ID、标题)
- 属性列(id、title、category_id)
它们之间的关系如下:
-
category_id与categories表中的id列同步 -
developer_id与developers表中的id列同步 -
property_id与properties表中的id列同步
我需要更新下面的 php 代码以使输出像这样
<?xml version="1.0" ?>
<list>
<property>
<title>apartments_title</title >
<price>apartments_price</price >
<type>properties_title</type>
<categoty>categories_title</categoty>
<developer>developer_title</developer>
</property>
</list>
我使用此代码从一个表中检索数据
header('Content-type: text/xml');
// INITIALIZE DOM OBJECT
$dom = new DOMDocument('1.0', 'UTF-8');
$dom->formatOutput = true;
$dom->preserveWhiteSpace = false;
// CREATE ROOT AND APPEND TO DOCUMENT
$xmlRoot = $dom->createElement("list");
$xmlRoot = $dom->appendChild($xmlRoot);
// QUERY DATABASE
$db = new PDO('mysql:host=hostname;dbname=dbname','dbusername','password');
$stmt = $db->prepare("select * from apartments");
$stmt->execute();
// FETCH ROWS ITERATIVELY
while($row = $stmt->fetch()){
// APPEND property AS CHILD OF ROOT
$propertyNode = $xmlRoot->appendChild($dom->createElement('property'));
// APPEND CHILDREN TO Property
$propertyNode->appendChild($dom->createElement('title', $row['title']));
$propertyNode->appendChild($dom->createElement('price', $row['price']));
}
$stmt = null;
$db = null;
// OUTPUT TO SCREEN
echo $dom->saveXML();
【问题讨论】:
-
与其对公寓中的每一行进行查询,不如对其他表使用 SQL 连接并进行一次查询。
标签: php mysql xml domdocument