对thinkphp3.1查询条件array ('in',$getid)条件的理解

关于thinkphp3.1查询条件array ('in',$getid)中的“$getid”,一直以来我都有点含糊,经过多次调试,现在终于有所收获。下面是操作代码片断:

..
$getid = $_REQUEST['id'];
$map['id'] = array ('in',$getid);
$News = M('News');        
$Newslist = $News->where($map)->select();    
if($Newslist !==false){
 $this->success();
}else{
 $this->error();
}        

对于上面 array ('in',$getid)的$getid,我将通过两种方法来探讨一下。      
当$getid是一个数组时(一维数组)  
"$getid "是一个一维数组,里面有一个或者多个元数,形式如array(1,2,3...)。现在通过"array ('in',$getid)"把它赋值给“$map['gid']”,作为连贯查询条件。查询结果将返回“操作成功”提示。
  
当$getid是数字型字符串时
  
先把$getid转换成字符串类型,如下代码:

$getid = $_REQUEST['id'];
$getids = implode(',', $getid);
$getid = is_array($getid) ? $getids : $getid;
        
 $map['id'] = array ('in',$getid);
 $News = M('News');        
 $Newslist = $News->where($map)->select();    
  if($Newslist !==false){
 $this->success();
}else{
 $this->error();
}        

转换后,$getid为字符串类型,形式如:'1,2,3...',查询结果将返回“操作成功”提示。
      通过上面的分析,可以知道查询条件array ('in',$getid)中的$getid可以是数组或者字符串。

 

本文首发WBlog博客,欢迎转载!转载请注明本文地址,谢谢。


本文地址:http://www.w3note.com/web/19.html

posted on 2012-09-25 13:07  君兰IT  阅读(507)  评论(0编辑  收藏  举报