php多条件组合算法,【图片】php多条件组合查询问题_php吧_百度贴吧

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

为了简单的说明的问题,这里数据库只用了核心字段,项目是在TP框架下完成的:

门票表:wq_myticket

核心字段:

id:门票id

reid:门票所属栏目的id

days:行程天数

types:旅游项目类型

访问类似这种:http://dianzipiao.com/index.php/List/index/days/2表示取得旅游日程为2的所有门票列表

列表页面控制器:

ListAction.class.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:

循环展示门票列表

{$vo.title|msubstr=0,14}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值