【发布时间】:2018-10-29 09:07:57
【问题描述】:
我正在尝试显示一个表格,该表格将打印出我为论坛软件创建的主题列表(有几十个),并使用 INNER JOIN 语句从另一个表格显示它们的版本号。
这是我要打印的 HTML 表格:
主题名称 版本号 ------------------------------------------- 优雅1.7.0 智能1.7.4 咏叹调 1.8.1 等等等等主题及其 ID 存储在 xf_style 表中:
-------------------------------- style_id |标题 -------------------------------- 1 |优雅 2 |聪明的 3 |咏叹调主题版本号存储在选项表 xf_style_property 中。后端系统中有数百个选项,每个选项都有一个选项 ID (style_property_id)。我正在寻找的“主题版本”选项的 ID 为“5145”。
xf_style_property 表格
-------------------------------------------------- ------------------ style_id | style_property_id |属性标签 |适当的价值 -------------------------------------------------- ------------------ 1 | 5144 |标志尺寸 | 110像素 2 | 5144 |标志尺寸 | 145像素 3 | 5144 |标志尺寸 | 120像素 1 | 5145 |主题版 | 1.7.0 2 | 5145 |主题版 | 1.7.4 3 | 5145 |主题版 | 1.8.1此表中有许多重复值。基本上,我想为 style_property_id 等于 5145 的每个主题获取 property_value,并将其与 xf_style 表内部连接。
我的完整脚本:
<?php
$servername = "localhost";
$username = "***";
$password = "***";
$dbname = "***";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
$sql = "SELECT xf_style.title, xf_style_property.property_value FROM xf_style_property WHERE property_definition_id = 5145, INNER JOIN xf_style ON xf_style_property.style_id=xf_style.style_id";
$result = $conn->query($sql) or die($conn->error);
?>
<table border="2" style= "background-color: #84ed86; color: #761a9b; margin: 0 auto;" >
<thead>
<tr>
<th>Theme Name</th>
<th>Theme Version</th>
</tr>
</thead>
<tbody>
<?php
while ($row = $result->fetch_assoc()) {
echo "<tr><td>" . $row['title'] . "</td><td>" . $row['property_value'] . "</td></tr>";
}
?>
</tbody>
</table>
我一直在尝试十几种不同的调整,包括本指南: https://www.w3schools.com/sql/sql_join.asp 和 SE 的其他指南,似乎无法使其工作。如果 SQL 新手提供任何帮助,将不胜感激。
免责声明:property_label 列实际上并不存在.. 我只是为了读者理解而写的。从另一个表中已经知道哪个 ID 代表什么选项标签。
【问题讨论】:
标签: php sql database join inner-join