注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

面包会有的

...

 
 
 

日志

 
 

TP 查询1,2,3,4Like 字段值1,2,3,5,4,6,7  

2016-08-29 15:29:03|  分类: thinkphp |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
可管理班级存于session("banjiId"),可能是以下几种情况
0,1,0
0,2,1,0
0,2,1,3,4,5,6,7,8,9,0

班级通知,字段banjiId为对应的班级id,逗号分隔,为空代表针对全校,可能是以下几种情况
0,3,0
0,3,5,0
0,1,2,3,4,5,6,7,8,0

当前登陆用户可管理的班级,可能是全部,一个或多个
要列出当前用户有权看到的通知

用到的语法:
http://document.thinkphp.cn/manual_3_2/region_query.html

区间查询的条件可以支持普通查询的所有表达式,也就是说类似LIKE、GT和EXP这样的表达式都可以支持。另外区间查询还可以支持更多的条件,只要是针对一个字段的条件都可以写到一起,例如:

  1. $map['name'] = array(array('like','%a%'), array('like','%b%'), array('like','%c%'), 'ThinkPHP','or');

最后的查询条件是:

 ( name LIKE '%a%') OR ( name LIKE '%b%') OR ( name LIKE '%c%') OR ( name = 'ThinkPHP')


实例:
可管理的班级:二年级一班,二年级二班,(0,3,4,14,0) 
可管理的班级存储于session,前后各加一个0,和,0

$bjid_str = session('user_banji_list');
$bjid_arr = explode(",",$bjid_str);
$bjid_arr = array_unique($bjid_arr);
$key = array_search(0, $bjid_arr);
if ($key !== false){
array_splice($bjid_arr, $key, 1);
}
if (session("username") !== C('ADMIN_AUTH_KEY') && !empty($bjid_arr)){
$tmp = array();
foreach($bjid_arr as $k=>$v){
$tmp[] = array('like','%,'.$v.',%');
}
$tmp[] = '';
$tmp[] = 'or';
$map['banjiId']  = $tmp; 
//$map['banjiId']  = array(array('like','%,3,%'), array('like','%,4,%'), '','or'); 

}
               
这样就会列出正确的结果

包括:可管理的班级的通知(如字段banjiId中有1和2),和全校通知(字段banjiId为空的)
TP 查询1,2,3,4Like 字段值1,2,3,5,4,6,7 - 加菲 - 面包会有的
 
  评论这张
 
阅读(96)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017