是否可以在动态菜单的单个查询中获取类别子目录子子类别?

时间:2017-08-22 06:13:22

标签: php html css mysql

我有两个类别和子类别表

       Create table m_category (id int, 
       cat_name varchar(30), 
       constraint pk_catid primary key (id)
       );

       Create table m_item (id int, 
       cat_id int, 
       item_name varchar(30), 
       constraint fk_catid 
       foreign key (cat_id)
       references m_category(id)
       );

我希望我的菜单看起来像This。 我希望你能得到这张照片。 我的想法是运行像

这样的查询
$sql="SELECT * FROM m_category where id='1';

并使用此类查询同样获取每个类别和子类别。

但我想让菜单完全动态,并在少于3个查询中获取类别和子类别。

是否可以这样做?

1 个答案:

答案 0 :(得分:1)

您可以使用联接

  $sql="SELECT * 
        FROM m_category 
        INNER JOIN m_item on m_category.id = m_item.fk_catid
        where id='1';";

使用PDO
假设您的$ dbh是您的数据库连接句柄(如果您使用mysqli,则有类似的功能)

$id = 1;

$sth = $dbh->prepare("SSELECT * 
            FROM m_category 
            INNER JOIN m_item on m_category.id = m_item.fk_catid
            where id= :id");
$sth->bindParam(':id', $id, PDO::PARAM_INT);