yii框架中findall方法取数据使用总结,包括select各种条件,where条件,order by条件,limit限制等

摘要:
'comment_Num'和其他字段,select=array('v_id','comment_Num');order='lastmodifymedesc';参数=数组(“:状态”=>然后写入$criteria-&gt,条件=“状态”=;foreach($resultas$ob){print_r($ob-&gt

在yii框架中可以使用映射类的find方法取出一条数据或者用findall方法取出数条数据来,那么如何按照所需条件来取数据呢,主要用到了CDbCriteria这个类,这个类是yii自带的操作数据库的支持类,可以作为参数传递给find等方法,这里用findall做个例子:

比如我要取出videoinfo表中的'v_id','title','big_class','sub_class','upload_time','comment_num' 等字段,且条件是status=1的,按照lastmodifytime倒序,且只取出3条即可,这样操作:

$criteria = new CDbCriteria() ;  
$criteria -> select = array('v_id','title','big_class','sub_class','upload_time','comment_num');          
$criteria -> condition = 'status = 1';  
$criteria -> order = 'lastmodifytime desc';  
$criteria -> limit = 3;  
$criteria ->params = array (':status' => $你的变量) ;  
$result = VideoInfo::model()->findAll($criteria);  

其中我注释掉的那一行是可以传变量的,用占位符表示,比如你的status需要按照变量来条件赋值的话,可以在注释的那行赋值,然后在condition条件写成

$criteria -> condition = 'status = :status';  

即可, 

这样,$result变量时你取得的结果,它是个对象列表,需要遍历一下:

foreach ($result as $ob){  
           print_r($ob->attributes);  
 }  

比如你想展示每个字段只需打出

$ob->attributes['title'];  

等等即可

领完,CPagination类可以和CDbCriteria类以及前台的分页插件一起用来支持分页:

            $count =VideoInfo::model()->count($criteria)

            $pages=new CPagination($count);        
            $pages->pageSize=30;  //每页分多少条
            $pages->applyLimit($criteria);  

$result = VideoInfo::model()->findAll($criteria); 

更多CDbCriteria类方法,详见文档:

http://www.php100.com/manual/yii/CDbCriteria.html

文章转载来自于http://blog.csdn.net/yyyfff43/article/details/18990871

免责声明:文章转载自《yii框架中findall方法取数据使用总结,包括select各种条件,where条件,order by条件,limit限制等》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Swift 内存管理详解百度地图开发-实现离线地图功能 05下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

vue-cli3使用less全局变量,不用每个组件引入less文件(亲测有效)

问题: 在global.less文件中定义一些全局使用的less变量; 结果组件使用这些全局变量时,都要@import "~@/styles/global.less"引入该文件,否则报错 解决方法和步骤 1. 安装style-resources-loader yarn add style-resources-loader 2. 在vue.config.j...

Httpd服务入门知识-https(http over ssl)安全配置

         Httpd服务入门知识-https(http over ssl)安全配置                                                 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 一.SSL会话的简化过程   (1)客户端发送可供选择的加密方式,并向服务器请求证书   (2)服务器端...

openshift 3.11 安装部署

openshift 3.11 安装部署 openshift安装部署 1 环境准备(所有节点) openshift 版本 v3.11 1.1 机器环境 ip cpu mem hostname OSsystem 192.168.1.130 4 16 master  CentOS7.6 192.168...

tomcat8热部署配置--maven自动发布项目到tomcat8(如何支持远程访问部署)

1、tomcat8实现热部署的配置  我们实现热部署后,自然就可以通过maven操作tomcat了,所以就需要maven取得操作tomcat的权限,现在这一步就是配置tomcat的可操作权限. #进入tomcat安装目录 cd /usr/local/devlop/tomcat #进入conf文件夹修改tomcat-users.xml vim conf/...

SendMessage发送WM_COMMAND消息控制另一个程序的某一个按钮

procedure TfrmMain.btnSendClick(Sender: TObject); var hCalc, h1: Cardinal; begin WinExec('calc', SW_SHOWNORMAL);//运行计算器 hCalc := FindWindow('SciCalc', nil);...

MyBatis查询传一个参数时报错:There is no getter for property named 'sleevetype' in 'class java.lang.Integer

用MyBatis进行查询,传入参数只有一个时(非Map)如int,报错 There is no getter for property named 'sleevetype' in 'class java.lang.Integer 解决方法一: 原因在于测试条件写法有误, <if test="sleevetype==0"><...