本文目录一览:
PHP搜索页面如何实现分类检索
不知道你的数据库是如何设计的~ 一般where 条件 AND链接就行了吧~
PHP实现搜索查询功能的方法技巧
下面是首页显示数据表package中的内容,但是有个条件,显示在首页的内容还必须是 :字段status=0,且printing=0的数据才能在首页列表中显示出来。
页面上有一个“搜索”功能,输入条件后就会根据条件来进行查询。
一般的搜索的话,只要在首页显示列表方法index()中给一个:
?
$map=array();//初始化查询条件
$map=$this-_search();//调用查询方法
$total = $this-Model-where ($map)-count(); //这个主要是用来计算页面显示数据条数的
if ($total == 0) {
$_list = '';
} else {
$_list = $this-Model-where ($map)-limit( $post_data ['first'] . ',' . $post_data ['rows'] )-select();
}
然后,就是写一个_search():
protected function _search(){
$map = array ();
$post_data = I ( 'post.' );
if ($post_data ['packageid'] != '') {
$map ['packageid'] = array (
'like',
'%' . $post_data ['packageid'] . '%'
);
}
return $map;
}
最后,在设置的“搜索”菜单中,调用这个搜索方法。
但是,这个搜索的.同时,还要确保在字段status=0,且printing=0的数据中进行搜索。
这个限制条件该加在什么地方。各种尝试和查询后,才知道。限制条件直接加在SQL语句中就行了(如下红色的地方)。(我自己试的时候一直在如下蓝色的地方加条件,屡试屡败!)
$map=array();
$map=$this-_search();
$total = $this-Model-where ($map)-where(array('status' =0,'print_status'=0))-count();
if ($total == 0) {
$_list = '';
} else {
$_list = $this-Model-where ($map)-where(array('status' =0,'print_status'=0))-limit( $post_data ['first'] . ',' . $post_data ['rows'] )-select();
}
更多相关文章推荐:
怎么制作网页上的分类搜索?点一下就自己分类显示的
分类搜索就是拼凑SQL语句的where子句
看你网站这里有地址桌数和价格
那么对应数据库就应该保存类似信息的字段
这里我假设你的数据保存在同一张表table中,表中有三个字段address,table_count,price分别对应地址,桌数,价格
那么分类中每个选项对应一个不同的URL请求
比如庐阳的地址如下
复制代码
search.php?address=luyantable_count=?php echo$_GET['table_count']?price=?php echo$_GET['price']?
看到这里的?php echo$_GET['table_count']?了吗?这里就是将另外两项分类中提供的筛选条件保存到URL中,这样筛选条件不会丢失。
其他分类筛选条件的URL地址也是这样的,只是每个条件只固定自己所代表的条件,其他都是动态输出,也就是比如价格分类中1000-2000的条件,对应的URL地址应该是
复制代码
search.php?address=?php echo $_GET['address']?table_count=?php echo $_GET['table_count']?price=1000-2000?
需要注意的是,在echo出其他两项筛选条件前,需要进行xss代码过滤,防止xss攻击,这里是为了简单起见直接输出了,实际是不可取的。
好了,有了这样的URL地址,筛选起来就很简单了
在search.php中获取到URL传递过来的address,table_count,price信息,判断是否为空,不为空就说明指定了筛选条件,为空就是没有指定(比如第一次只点击了某个地址,那么其他两项条件都是空)
然后就可以生成SQL语句了
复制代码
$sql="select * fromtable ";
$where="";
if(!empty($_GET['price']))
{
$priceArr=explode('-',$_GET['price']);
$where="price$priceArr[0] andprice$priceArr[1]AND";
}
if(!empty($_GET['table_count']))
{
$priceArr=explode('-',$_GET['table_count']);
$
使用php实现商品所有分类查询,类似淘宝这种
在数据库建立的时候就已经分好了 给每个栏目一个p_id
最上层菜单p_id为0
子菜单p_id为上级菜单的id
查询的时候就根据id和pid来查找
找出所有就按照递归来找