一般网站建设我们遇到一级分类,二级分类也差不多了,但有时我们会遇到有三级分类的情况,当然不排除还有更多级分类的时侯,至于后台分类设置我们就不讨论了,我们这里讨论的重点是前台显示商品时可能会遇到的几种情况:
第一种情况:点大击只显示当前类别大类的商品,点二级分类只显示该二级分类的商品,点三级分类只显示该三级分类的商品,总之一句话只显示当前点击类别的商品;此时我们SQL语句可以按下面的方法:
$cate=intval($_REQUEST["cate"]); $cate2=intval($_REQUEST["cate2"]); $cate3=intval($_REQUEST["cate3"]);
if($cate=="" and $cate2=="" and $cate3==""){ $sql_page="SELECT * FROM `eobocn_goods` ORDER BY id DESC";}
elseif($cate2=="" and $cate3==""){ $sql_page="SELECT * FROM `eobocn_goods` where cate_id='$cate' ORDER BY id DESC";}
elseif($cate2!="" and $cate3==""){ $sql_page="SELECT * FROM `eobocn_goods` where cate_id='$cate2' ORDER BY id DESC";}
elseif($cate3!=""){ $sql_page="SELECT * FROM `eobocn_goods` where cate_id='$cate3' ORDER BY id DESC";}
第二种情况:点击一击分类能显示一级和二级分类的商品,点击二级显示二级和三级的商品,当然点击三级肯定只能显示三级的商品;此时也很简单,可以用下面的SQL语句:
$cate=intval($_REQUEST["cate"]); $cate2=intval($_REQUEST["cate2"]); $cate3=intval($_REQUEST["cate3"]);
if($cate=="" and $cate2=="" and $cate3==""){ $sql_page="SELECT * FROM `eobocn_goods` ORDER BY id DESC";}
elseif($cate2=="" and $cate3==""){ $sql_page="SELECT * FROM `eobocn_goods` WHERE `cate_id`='$cate' or `cate_id` in (select id from `eobocn_categories` where `cate_id`='$cate') order by id desc";}
elseif($cate2!="" and $cate3==""){ $sql_page="SELECT * FROM `eobocn_goods` where cate_id='$cate2' or `cate_id` in (select id from `eobocn_categories` where `cate_id`='$cate2') order by id desc";}
elseif($cate3!=""){ $sql_page="SELECT * FROM `eobocn_goods` where cate_id='$cate3' ORDER BY id DESC";}
第三种情况也是最麻烦的一种情况:点击第一级,显示下面所有的一级,二级,三级分类,点击二级显示下面所有二级分类,同样点击第三级还是只会显示三级分类,这个与上面的区别只有点击一级分类时有所不同:
$cate=intval($_REQUEST["cate"]); $cate2=intval($_REQUEST["cate2"]); $cate3=intval($_REQUEST["cate3"]);
if($cate=="" and $cate2=="" and $cate3==""){ $sql_page="SELECT * FROM `eobocn_goods` ORDER BY id DESC";}
elseif($cate2=="" and $cate3==""){ $AAA="`cate_id`='$cate'"; $AAA.="OR `cate_id` in(select id from `eobocn_categories` where `cate_id`='$cate')";
$sql_aa="select `id` from `eobocn_categories` where `cate_id`='$cate'"; $query_aa=$db->query($sql_aa); while($row_aa=$db->fetch_array($query_aa)){ $AAID=$row_aa["id"]; $AAA.="OR cate_id in (select id from `eobocn_categories` where `cate_id`='$AAID')"; }
elseif($cate2!="" and $cate3==""){ $sql_page="SELECT * FROM `eobocn_goods` where cate_id='$cate2' or `cate_id` in (select id from `eobocn_categories` where `cate_id`='$cate2') order by id desc";}
elseif($cate3!=""){ $sql_page="SELECT * FROM `eobocn_goods` where cate_id='$cate3' ORDER BY id DESC";}
本文地址:http://www.eobo.cn/news/406.html
|