複数のテーブルを結合してこのナビゲーション リストを機能させる方法について、以前にヘルプが提供されました。それらのカテゴリに含まれる製品の数に基づくカテゴリ: これは、私のテーブル設定を示す前のリンクです:
これは、ナビゲーションを正しくエコーアウトしようとする私のコードです。
try
{
$result = $pdo->query('SELECT product.*, bottom_category.bottom_name, top_category.top_name
FROM product
INNER JOIN bottom_category ON bottom_category.id = product.bottom_category_id
INNER JOIN top_category ON top_category.id = bottom_category.top_category_id
ORDER BY top_category.id,bottom_category.id');
} // end try
catch (PDOException $e)
{
echo 'There was a error fetching the products.' . $e->getMessage();
exit();
} // end catch
$products = array();
foreach ($result as $row)
{
$products[] = array('top_name' => $row['top_name'],
'bottom_name' => $row['bottom_name']);
}
?>
<div class="sidebar">
<h4 class="sidebar-header">Select Products</h4>
<form class="nav-search-form">
<input type="search" name="search" placeholder="Search products">
</form>
<nav class="sidebar-links">
<ul>
<li><a id="red" href="/semtronics/index.php">New Products</a></li>
<?php
foreach ($products as $product):
?>
<li><a href="#"><?php echo htmlspecialchars($product['top_name']);?></a>
<ul>
<li><a href=""><?php echo htmlspecialchars($product['bottom_name']);?></a></li>
</ul>
</li>
<?php endforeach; ?>
</ul>
</nav>
</div><!-- sidebar -->
唯一の問題は、そのカテゴリにリンクされている製品の数に基づいてナビゲーション リストが複製されていることです。