ThinkPHP查询语句与关联查询用法实例


Posted in PHP onNovember 01, 2014

本文实例讲述了ThinkPHP查询语句与关联查询用法。分享给大家供大家参考。具体如下:

在thinkphp框架页面中我们可以直接拼写sql查询语句来实现数据库查询读写操作,下面就对此加以实例说明。

普通查询除了字符串查询条件外,数组和对象方式的查询条件是非常常用的,这些是基本查询所必须掌握的。

一、使用数组作为查询条件

$User = M("User"); //实例化User对象
$condition['name'] = 'thinkphp'; // 把查询条件传入查询方法

$User->where($condition)->select();

二、使用对象方式来查询 可以使用任何对象 这里以stdClass内置对象为例
$User = M("User"); // 实例化User对象

// 定义查询条件 $condition = new stdClass();

$condition->name = 'thinkphp';  // 查询name的值为thinkphp的记录

$User->where($condition)->select(); //  上面的查询条件等同于 where('name="thinkphp"') 使用对象方式查询和使用数组查询的效果是相同的,并且是可

带where条件的普通查询
  
1、字符串形式

$user=M('user');

$list=$user->where('id>5 and id<9')->select();

$list=$user->where($data)->select();

2、数组形式
$user=M('user');

$list=$user->where(array('username'=>'3water.com'))->select();

$list=$user->where($data)->select();

3、对象形式
$user=M('user');

$a=new stdClass();

$a->username='3water.com;

$list=$user->where($a)->select();

两个表的关联查询:
$M_shopping = M('Shops'); 

$M_product = M('Product'); 

$list_shops = $M_shopping->join('as shops left join hr_product as product on shops.product_id = product.p_id') 

->field('product.p_id,product.p_name,shops.product_amount,shops.product_id') 

->where("shops.user_cookie='".$_COOKIE['hr_think_userid']."'") 

->group('shops.id') 

->select();

区间查询

$user=M('user');

$data['id']=array(array('gt',20),array('lt',23),'and');

$list=$user->where($data)->select();

组合查询
$user=M('user');

$data['username']='pengyanjie';

$data['password']=array('eq','pengyanjie');

$data['id']=array('lt',30);

$data['_logic']='or';

$list=$user->where($data)->select();

dump($list);

复合查询
$user=M('user');

$data['username']=array('eq','pengyanjie');

$data['password']=array('like','p%');

$data['_logic']='or';

$where['_complex']=$where;

$where['id']=array('lt',30);

$list=$user->where($data)->select();

三个数据表的关联查询
$M_shopping = M('Shops');

$M_product = M('Product');

$M_proimg = M('Product_image');

$list_shops = $M_shopping->join('as shops left join hr_product as product on shops.product_id = product.p_id left join

hr_product_image as productimgon productimg.p_id = product.p_id')->fiel('productimg.pi_url,product.p_id,product.p_name,shops.product_amount,shops.product_id,product.am_id,

product.p_procolor,product.p_price,product_amount*p_price as totalone')->where("shops.user_cookie='".$_COOKIE['hr_think_userid']."'")

->group('shops.id')->select();

数据表的查询条件

① 下面的是直接吧查询的条件放到了where中,这样就方便了条件的书写

$m_test = M("Product");

$productmeaage = $m_test->where("p_id='$proid'")->select();

② 除了上面的方法还有一种是以数组的方式

$M_product = M('Product');

$map['pid'] = $proid;

$p_result = $M_product->where($map)->select();

希望本文所述对大家的ThinkPHP框架程序设计有所帮助。

PHP 相关文章推荐
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 PHP
php自定义函数之递归删除文件及目录
Aug 08 PHP
php 目录与文件处理-郑阿奇(续)
Jul 04 PHP
php二维数组转成字符串示例
Feb 17 PHP
CI框架Session.php源码分析
Nov 03 PHP
THINKPHP内容分页代码分享
Jan 14 PHP
使用纯php代码实现页面伪静态的方法
Jul 25 PHP
PHP实现合并discuz用户
Aug 05 PHP
ThinkPHP连接Oracle数据库
Apr 22 PHP
详解PHP用substr函数截取字符串中的某部分
Dec 03 PHP
PHP迭代器接口Iterator用法分析
Dec 28 PHP
YII2.0框架行为(Behavior)深入详解
Jul 26 PHP
ThinkPHP分组下自定义标签库实例
Nov 01 #PHP
PHP根据两点间的经纬度计算距离
Oct 31 #PHP
ThinkPHP在新浪SAE平台的部署实例
Oct 31 #PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 #PHP
ThinkPHP无限级分类原理实现留言与回复功能实例
Oct 31 #PHP
ThinkPHP控制器间实现相互调用的方法
Oct 31 #PHP
ThinkPHP上使用多说评论插件的方法
Oct 31 #PHP
You might like
星际争霸中的热键
2020/03/04 星际争霸
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
2010/03/18 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
2012/01/15 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
浅谈JavaScript正则表达式分组匹配
2015/04/10 Javascript
javascript动态创建表格及添加数据实例详解
2015/05/13 Javascript
js HTML5多媒体影音播放
2016/10/17 Javascript
浅谈jquery之on()绑定事件和off()解除绑定事件
2016/10/26 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
微信小程序 按钮滑动的实现方法
2017/09/27 Javascript
AngularJS对动态增加的DOM实现ng-keyup事件示例
2018/03/12 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
TypeScript高级用法的知识点汇总
2019/12/17 Javascript
原生js实现点击按钮复制内容到剪切板
2020/11/19 Javascript
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
[34:39]Secret vs VG 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python字符串格式化输出方法分析
2016/04/13 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
Python 类方法和实例方法(@classmethod),静态方法(@staticmethod)原理与用法分析
2019/09/20 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
python单例设计模式实现解析
2020/01/07 Python
Django-simple-captcha验证码包使用方法详解
2020/11/28 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
印度尼西亚电子产品购物网站:Kliknklik
2018/06/05 全球购物
金智子午JAVA面试题
2015/09/04 面试题
C语言变量的命名规则都有哪些
2013/12/27 面试题
2014学年自我鉴定
2014/02/23 职场文书
学校评语大全
2014/05/06 职场文书
抵押贷款承诺书
2014/05/30 职场文书
教师党的群众路线对照检查材料
2014/09/24 职场文书
钳工实训报告总结
2014/11/04 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python