显示带有子类别内容的类别内容

Showing category content with sub categories content

我有主类和子类。

在cat.php?id=1 页; (id=1 是主要类别)

我还想显示子类别内容。

我的分类table:

id - sub - title

(如果sub=0表示这是主分类,如果不是就是子分类)

我现在的查询是这样的;

<?php
    $id =   $_GET['id'];
    $data = mysql_query("select * from content where category=".$id." order by id desc");
    while($r=mysql_fetch_array($data)) 
        {
            echo "$r[id] - $r[title]";
        }
?> 

只显示主分类内容,不显示子分类内容。 (在 cat.php?id=1)

*

我想我必须再次连接类别 table 以获得子类别的 ID。 ???

当然,我需要一个新查询。我需要获取 sub=".$id." 并在同一页面中列出此处。

我卡住了。

因此您还需要获取子类别的 ID,您可以在该查询中嵌入第二个查询(或将其拆分为两个单独的查询,但这会向服务器添加另一个请求)。

你会按照这些行写一些东西:

$data = mysql_query("select * from content where category IN (SELECT id FROM categories WHERE id='$id' OR sub='$id') order by id desc");

使用 WHERE ... IN 可以让您 select 来自列表的多个值,例如 (3,5,2)

因此当子查询执行时它看起来类似于:

select * from content where category IN (1,3,2,5,13) order by id desc

警告:

您需要清理您的 $_GET['id'] 以便不会发生 sql 注入,目前这将允许 sql 注入。

此外,mysql_ 函数已弃用,您需要开始使用 PDO 准备语句,我对它们还不够熟悉,但它们会为您清理用户输入。