我有主要类别和子类别。
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."
并在同一页面中列出。
我卡住了。
答案 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预处理语句,我对它们不熟悉,但是他们会为您清理用户输入。