我是编码的新手,我一直试图找出如何正确加入表格。我一直在阅读它,但由于某种原因,我的头缠绕它有点麻烦。
我设置了一个本地主机,并且一直在乱用PHP和MySQL。我一直在尝试在同一个表中创建类别和子类别。我有一个包含以下行的表。
Table name: categories id main_cat parent_id sub_cat_name
我一直试图创建一个表格,显示每个子类别及其对应的主要类别和父ID。我一直在网上做研究,遇到了JOIN表。我能够显示具有相应主类别的子类别,但无法显示父ID。父ID返回null
。以下是我的代码。任何人都可以解释为什么这不起作用,如果这是显示数据的最佳方式。
<table class="table table-striped">
<thead>
<tr>
<th>Subcategory Name</th>
<th>Main Category</th>
<th>Parent ID</th>
</tr>
</thead>
<tbody>
<?php
// connect to database
include 'config/config.php';
include 'config/opendb.php';
$sql='SELECT t1.main_cat_name, t2.sub_cat_name, t3.parent_id FROM categories t1
LEFT JOIN categories t2 ON t2.parent_id = t1.main_cat_id
LEFT JOIN categories t3 ON t2.main_cat_id = t3.parent_id
WHERE t2.sub_cat_name IS NOT NULL;';
$rs=$conn->query($sql);
$rs->data_seek(0);
while($row = $rs->fetch_assoc())
{
$mainCatName = $row['main_cat_name'];
$subCatName = $row['sub_cat_name'];
echo"<tr>
<td>$subCatName</td>
<td>$mainCatName</td>
<td></td>
</tr>";
}
$conn->close();
?>
</tbody>
</table>
答案 0 :(得分:0)
根据你的问题,我知道你想要这些:
<table class="table table-striped">
<thead>
<tr>
<th>Subcategory Name</th>
<th>Main Category</th>
<th>Parent ID</th>
</tr>
</thead>
<tbody>
<?php
// connect to database
include 'config/config.php';
include 'config/opendb.php';
$sql='SELECT main_cat AS `main_cat_name`, sub_cat_name AS `sub_cat_name`, parent_id FROM categories WHERE sub_cat_name IS NOT NULL;';
$rs=$conn->query($sql);
$rs->data_seek(0);
while($row = $rs->fetch_assoc())
{
echo"<tr>
<td>$row['main_cat_name']</td>
<td>$row['sub_cat_name']</td>
<td>$row['parent_id']</td>
</tr>";
}
$conn->close();
?>
</tbody>