网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
01月09日漏签0天
php吧 关注:280,473贴子:1,321,343
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 10回复贴,共1页
<<返回php吧
>0< 加载中...

php多条件组合查询问题

  • 只看楼主
  • 收藏

  • 回复
  • fengyingyuan
  • 框架好玩
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

相信使用过Ecshop的用户一定会对这种查询印象深刻,但是怎么实现的就不是所有的用户都有一定的思路并且用php实现这种效果了。前几天在做一个团购网项目时,恰好遇到这种问题,就根据自己的理解,实现下这种效果,废话不多说了,直接上代码.


  • sf272021899
  • 面向对象
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我是代码


2026-01-09 02:47:06
广告
不感兴趣
开通SVIP免广告
  • fengyingyuan
  • 框架好玩
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
先看下最终效果:
都是全部

结果:

旅游日程选择2日游(数据库中 只有一条数据)

结果:


  • 你妹_伤不起
  • XDebug
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
其实我更想知道的是 多选的 比如旅游项目 为滑雪+温泉


  • fengyingyuan
  • 框架好玩
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
为了简单的说明的问题,这里数据库只用了核心字段,项目是在TP框架下完成的:
门票表:wq_myticket
核心字段:
id:门票id
reid:门票所属栏目的id
days:行程天数
types:旅游项目类型
访问类似这种:http://dianzipiao.com/index.php/List/index/days/2表示取得旅游日程为2的所有门票列表
列表页面控制器:
ListAction.class.php(获取栏目下的门票相对麻烦,这里为了简化问题,去掉了栏目属性,只通过旅游日程和类型进行筛选)
<?php
//处理path_info路径
$path_info=$_SERVER['PATH_INFO']; //获取path_info字符串,结果形如:/List/index/id/1
$this->assign('basehost',"http://".$_SERVER['SERVER_NAME']);
//获取网站路径方便在模板中拼接url路径,结果形如:http://dianzipiao.com/index.php
//获取项目类型路径url
$regexp='/\/types\/([a-z]+)/'; //如果url中有/types/huaxue这种形式,就将/types/huaxue去掉,这里使用正则将/types/huaxue替换成空字符串''
!isset($_GET['types']) ? $this->assign('cur_types','0'):$this->assign('cur_types',$_GET['types']);
//这里判断types参数是有设置,如果没有,就将cur_types赋为0,否则就赋为$_GET['types']
$this->assign('types_url',preg_replace($regexp,'',$path_info)); //这里使用正则将/types/huaxue替换成空字符串'',方便在模板中拼接url
//获取旅游日程路径url,这里和处理项目类型路径url同理
$regexp='/\/days\/([\d]+)/';
!isset($_GET['days']) ? $this->assign('cur_days',0):$this->assign('cur_days',$_GET['days']);
$this->assign('days_url',preg_replace($regexp,'',$path_info));
//然后就是拼接sql查询语句:
$where="where 1 ";
$days=$_GET['days'];
$types=$_GET['types'];
if(is_numeric($days) && $days>0){
$where.="and days=$days ";
}
if(!empty($types)){
$where.="and types='$types' ";
}
$model=new Model();//创建数据库操作模型
$result=$model->query("select * from wq_ticket $where");
$this->assign('result',$result); //门票结果列表,注入模板变量
$this->display("Public:list_ticket"); //载入模板list_ticket.html
?>
模板list_ticket.html:
<div class="item_list">
<div class="item_list_left">旅游日程</div>
<div class="item_list_right">
<a href="{$basehost}/index.php{$days_url}/days/0" <if condition="$cur_days eq '0'">class="hover"</if>>全部</a>
<a href="{$basehost}/index.php{$days_url}/days/1" <if condition="$cur_days eq '1'">class="hover"</if>>1日游</a>
<a href="{$basehost}/index.php{$days_url}/days/2" <if condition="$cur_days eq '2'">class="hover"</if>>2日游</a>
<a href="{$basehost}/index.php{$days_url}/days/3" <if condition="$cur_days eq '3'">class="hover"</if>>3日游</a>
<a href="{$basehost}/index.php{$days_url}/days/4" <if condition="$cur_days eq '4'">class="hover"</if>>4日游</a>
<a href="{$basehost}/index.php{$days_url}/days/5" <if condition="$cur_days eq '5'">class="hover"</if>>5日游</a>
<a href="{$basehost}/index.php{$days_url}/days/6" <if condition="$cur_days eq '6'">class="hover"</if>>6日游</a>
</div>
</div>
<div class="item_list">
<div class="item_list_left">旅游项目</div>
<div class="item_list_right">
<a href="{$basehost}/index.php{$types_url}/types/0" <if condition="$cur_types eq '0'">class="hover"</if>>全部</a>
<a href="{$basehost}/index.php{$types_url}/types/huaxue" <if condition="$cur_types eq 'huaxue'">class="hover"</if>>滑雪</a>
<a href="{$basehost}/index.php{$types_url}/types/wenquan" <if condition="$cur_types eq 'wenquan'">class="hover"</if>>温泉</a>
<a href="{$basehost}/index.php{$types_url}/types/piaoliu" <if condition="$cur_types eq 'piaoliu'">class="hover"</if>>漂流</a>
<a href="{$basehost}/index.php{$types_url}/types/buyu" <if condition="$cur_types eq 'buyu'">class="hover"</if>>捕鱼</a>
<a href="{$basehost}/index.php{$types_url}/types/shaokao" <if condition="$cur_types eq 'shaokao'">class="hover"</if>>烧烤</a>
<a href="{$basehost}/index.php{$types_url}/types/cs" <if condition="$cur_types eq 'cs'">class="hover"</if>>CS野战</a>
<a href="{$basehost}/index.php{$types_url}/types/kuaiting" <if condition="$cur_types eq 'kuaiting'">class="hover"</if>>快艇</a>
<a href="{$basehost}/index.php{$types_url}/types/luying" <if condition="$cur_types eq 'luying'">class="hover"</if>>露营</a>
<a href="{$basehost}/index.php{$types_url}/types/meishi" <if condition="$cur_types eq 'meishi'">class="hover"</if>>美食</a>
<a href="{$basehost}/index.php{$types_url}/types/youlechang" <if condition="$cur_types eq 'youlechang'">class="hover"</if>>游乐场</a>
</div>
</div>
循环展示门票列表
<volist name="result" id="vo">
<dl>
<dd class="title"><a href="__APP__/Article/ticket/id/{$vo.id}" title="{$vo.title}">{$vo.title|msubstr=0,14}</a></dd>
</dl>
</volist>


  • 日工日生
  • CLI
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
性能是关键


  • 我自己取的名字
  • 记事本
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
代码在哪


  • 曾逐东风
  • XDebug
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
好贴。学习了


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 10回复贴,共1页
<<返回php吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示