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

时间:2015-07-24 16:57:36

标签: php mysql categories content-management

我有主要类别和子类别。

at cat.php?id = 1 page; (id = 1是主要类别)

我想要显示子类别内容。

我的分类表:

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)

*

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

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

我卡住了。

1 个答案:

答案 0 :(得分:1)

因此,您还需要获取子类别的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可以从列表中选择多个值,如(3,5,2)

当子查询执行时,它看起来与此类似:

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

警告:

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

此外,不推荐使用mysql_函数,您需要开始使用PDO预处理语句,我对它们不熟悉,但是他们会为您清理用户输入。