PHP搜索页面如何实现分类检索?
本帖最后由 u010572351 于 2013-06-22 10:09:22 编辑 是这样的,一个商城或者电影站,我现在需要进行各项检索,如下图

单独的,按类型检索,会
单独的,按年代检索,会
单独的,按产地检索,会
但是,如果我选了类型,然后我再选产地,再选年代,或者这三者的各种组合操作,相当复杂,不知道怎么处理了,
请高人指点,主要是怎么保留前面用户点击筛选的参数?
然后是产地,年代,类型的链接还真不好写,因为不能写死成单独的,
我现在就是年代就带年代的参数,类型就只有自己类型的参数,产地就是产地的参数,如:
一点就只有一个条件,不能并存,也不能实现多条件筛选。
这个应该怎么弄啊?

单独的,按类型检索,会
单独的,按年代检索,会
单独的,按产地检索,会
但是,如果我选了类型,然后我再选产地,再选年代,或者这三者的各种组合操作,相当复杂,不知道怎么处理了,
请高人指点,主要是怎么保留前面用户点击筛选的参数?
然后是产地,年代,类型的链接还真不好写,因为不能写死成单独的,
我现在就是年代就带年代的参数,类型就只有自己类型的参数,产地就是产地的参数,如:
<a href="/search.php?area="内地">内地</a><br><a href="/search.php?type="动作">动作</a><br><a href="/search.php?year="2011">2011</a>
一点就只有一个条件,不能并存,也不能实现多条件筛选。
这个应该怎么弄啊?
分享到:
------解决方案--------------------
$area=$_GET['area'];//get值需要自己处理一下
$type=$_GET['type'];
$year=$_GET['year'];
$sql="select * from shop where 1";
$sql.=isset($area)?" and area='$area'":'';
$sql.=isset($type)?" and type='$type'":'';
$sql.=isset($year)?" and area='$year'":'';
$result=mysql_query($sql);
while......
希望我的回答对你有帮助。
------解决方案--------------------
你这样做做看
------解决方案--------------------
你也可以利用 session 处理
------解决方案--------------------
你用的是 啊标记跳转,无需 js
echo join(' - ', $_GET), '
';
是让你直观地观察到点选的变化
------解决方案--------------------
你的程序文件保存为 search1.php 了吗?
------解决方案--------------------
再给个条件宽松点的(随便保存成什么文件名,当然后缀要是php)
------解决方案--------------------
$area=$_GET['area'];//get值需要自己处理一下
$type=$_GET['type'];
$year=$_GET['year'];
$sql="select * from shop where 1";
$sql.=isset($area)?" and area='$area'":'';
$sql.=isset($type)?" and type='$type'":'';
$sql.=isset($year)?" and area='$year'":'';
$result=mysql_query($sql);
while......
希望我的回答对你有帮助。
------解决方案--------------------
你这样做做看
echo join(' - ', $_GET), '<br>';<br>$dict = array(<br> 'area' => array('内地', '港台'),<br> 'type' => array('动作', '爱情'),<br> 'year' => array('2001', '2013'),<br>);<br>foreach($dict as $key=>$item) {<br> $param = $_GET;<br> foreach($item as $v) {<br> $param[$key] = $v;<br> $t = http_build_query($param);<br> echo "<a href='/search.php?$t'>$v</a> ";<br> }<br> echo '<br>';<br>}<br>------解决方案--------------------
你也可以利用 session 处理
<?php<br>session_start();<br>if(! isset($_SESSION['search']))<br> $_SESSION['search'] = array();<br>$_SESSION['search'] = array_merge($_SESSION['search'], $_GET);<br>echo join(' - ', $_SESSION['search']), '<br>';<br>?><br><a href="/search1.php?area=内地">内地</a><br><a href="/search1.php?type=动作">动作</a><br><a href="/search1.php?year=2011">2011</a><br>------解决方案--------------------
你用的是 啊标记跳转,无需 js
echo join(' - ', $_GET), '
';
是让你直观地观察到点选的变化
------解决方案--------------------
你的程序文件保存为 search1.php 了吗?
------解决方案--------------------
再给个条件宽松点的(随便保存成什么文件名,当然后缀要是php)
session_start();<br>if(! isset($_SESSION['search']) <br><font color="#FF8000">------解决方案--------------------</font><br> ! $_GET)<br> $_SESSION['search'] = array();<br>$_SESSION['search'] = array_merge($_SESSION['search'], $_GET);<div class="clear">
</div>










