我正在尝试制作一个下拉菜单。菜单正在从 mysql 表中获取值。 我使用 2 个表,第一个用于主菜单项,第二个是页面并与菜单中的父类别嵌套。所以我的菜单必须是这样的;
<ul>
<li>MAIN MENU - 1 <!-- from menu table -->
<ul>
<li>SUB MENU - 1 - 1</li><!-- from sayfalar table -->
</ul>
</li>
<li>MAIN MENU - 2 <!-- from menu table -->
<ul>
<li>SUB MENU - 2-1</li><!-- from sayfalar table -->
</ul>
</li>
</ul>
我的 mysql 数据库中有 2 个表,名为:'menu'=parent 和 'sayfalar'=children。
sayfalar表结构:
sayfa_id | sayfa_foto | sayfa_ad_dil1 | sayfa_ad_dil2 | sayfa_detay_dil1 | sayfa_detay_dil2 | ust_menu_id
---------------------------------------------------------------------------------------------------------
1 | NULL | HAKKIMIZDA | ABOUT US | DENEME | LOREM IPSUM | 2
---------------------------------------------------------------------------------------------------------
菜单表结构
menu_id | menu_ad_dil1 | menu_ad_dil2 | menu_order
--------------------------------------------------
1 | ANASAYFA | HOMEPAGE | 1
--------------------------------------------------
2 | KURUMSAL | CORPORATE | 2
--------------------------------------------------
3 | BLA BLA | BLA BLA | 3
--------------------------------------------------
4 | LOREM | IPSUM | 4
--------------------------------------------------
5 | İLETİŞİM | CONTACT | 5
--------------------------------------------------
使用 PDO 的 mysql 查询看起来像;
<?php
// PDO Sorgu Hazırla
$query = $db->prepare
('SELECT menu.*, sayfalar.ust_menu_id, sayfalar.sayfa_id
FROM menu
INNER JOIN sayfalar
ON menu.menu_id = sayfalar.ust_menu_id ORDER BY `menu`.`menu_order` ASC');
// PDO Sorguyu Çalıştır
$query->execute();
?>
并像下面一样回显;
<?php
while ($row = $query->fetch(PDO::FETCH_OBJ))
{
echo '<li class="pi"><a href="link.php?i='.$row->menu_id.'"><span>'.$row->menu_ad_dil2.'</span></a>';
echo '<ul class="pi-submenu pi-has-border pi-items-have-borders pi-has-shadow pi-submenu-dark">';
echo '<li class="pi"><a href="urun-detay.php?i='.$row->sayfa_id.'"><span>'.$row->menu_ad_dil2.'</span></a></li>';
echo '</ul>';
echo '</li>';
}
?>
不幸的是,它只返回 1 行。我的菜单表中有 5 个父菜单项,如上所示。任何帮助都会非常有用。
最佳答案
试试这个
<?php
// PDO Sorgu Hazırla
$query = $db->prepare
('SELECT distinct menu.*, sayfalar.ust_menu_id, sayfalar.sayfa_id
FROM menu
LEFT OUTER JOIN sayfalar
ON menu.menu_id = sayfalar.ust_menu_id ORDER BY `menu`.`menu_order` ASC');
// PDO Sorguyu Çalıştır
$query->execute();
?>
关于php - 连接 2 个表的 PDO Sql 查询返回一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24085038/