Я пытаюсь отобразить таблицу, в которой будет напечатан список тем, которые я создаю для программного обеспечения форума (их несколько десятков), и отобразить номер их версии из другой таблицы, используя инструкцию INNER JOIN.
Вот таблица HTML, которую я хочу напечатать:
Theme Name Version Number
-------------------------------
Elegance 1.7.0
Smarty 1.7.4
Aria 1.8.1
etc etc
Темы и их идентификаторы хранятся в xf_style таблице:
--------------------------------
style_id | title
--------------------------------
1 | Elegance
2 | Smarty
3 | Aria
Теманомера версий хранятся в таблице параметров xf_style_property .В бэкэнд-системе есть сотни вариантов, каждый с идентификатором опции (style_property_id).Опция «Theme Version», которую я ищу, имеет идентификатор «5145».
xf_style_property table
---------------------------------------------------------------------
style_id | style_property_id | property_label | property_value
---------------------------------------------------------------------
1 | 5144 | Logo Size | 110px
2 | 5144 | Logo Size | 145px
3 | 5144 | Logo Size | 120px
1 | 5145 | Theme Version | 1.7.0
2 | 5145 | Theme Version | 1.7.4
3 | 5145 | Theme Version | 1.8.1
В этой таблице много повторяющихся значений.По сути, я хочу получить property_value для каждой темы, где style_property_id равно 5145 , и внутреннее объединить это с таблицей xf_style.
Myполный сценарий:
<?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 на самом деле не существует .. Я написал это только для понимания читателя.Из другой таблицы уже известно, какой идентификатор обозначает какую опцию.