博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
yii框架中findall方法取数据使用 条件获取的写法
阅读量:5082 次
发布时间:2019-06-13

本文共 1192 字,大约阅读时间需要 3 分钟。

在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);

转载于:https://www.cnblogs.com/pedestrianhao/p/7205158.html

你可能感兴趣的文章
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>
深度学习
查看>>
TCP粘包问题及解决方案
查看>>
构建之法阅读笔记02
查看>>
添加按钮
查看>>
移动端页面开发适配 rem布局原理
查看>>
Ajax中文乱码问题解决方法(服务器端用servlet)
查看>>
会计电算化常考题目一
查看>>