显示带有子类别内容的类别内容
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 准备语句,我对它们还不够熟悉,但它们会为您清理用户输入。
我有主类和子类。
在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 准备语句,我对它们还不够熟悉,但它们会为您清理用户输入。