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 相关文章推荐
php foreach 参数强制类型转换的问题
Dec 10 PHP
浅析Mysql 数据回滚错误的解决方法
Aug 05 PHP
php读取纯真ip数据库使用示例
Jan 26 PHP
CodeIgniter控制器之业务逻辑实例分析
Jan 20 PHP
THinkPHP获取客户端IP与IP地址查询的方法
Nov 14 PHP
php安装php_rar扩展实现rar文件读取和解压的方法
Nov 17 PHP
laravel自定义分页效果
Jul 23 PHP
PHP结合Vue实现滚动底部加载效果
Dec 17 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 PHP
php json转换相关知识(小结)
Dec 21 PHP
Laravel解决nesting level错误和隐藏index.php的问题
Oct 12 PHP
PHP实现简易图形计算器
Aug 28 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
PHP 和 MySQL 基础教程(二)
2006/10/09 PHP
PHP入门学习笔记之一
2010/10/12 PHP
PHP循环语句笔记(foreach,list)
2011/11/29 PHP
关于初学PHP时的知识积累总结
2013/06/07 PHP
在wamp集成环境下升级php版本(实现方法)
2013/07/01 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
js实现的折叠导航示例
2013/11/29 Javascript
JS实现距离上次刷新已过多少秒示例
2014/05/23 Javascript
javascript实现日期格式转换
2014/12/16 Javascript
Jquery中CSS选择器用法分析
2015/02/10 Javascript
JavaScript正则表达式匹配 div  style标签
2016/03/15 Javascript
Three.js入门之hello world以及如何绘制线
2017/09/25 Javascript
JS实现的排列组合算法示例
2019/07/16 Javascript
js遍历详解(forEach, map, for, for...in, for...of)
2019/08/28 Javascript
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
跟老齐学Python之正规地说一句话
2014/09/28 Python
python matplotlib 注释文本箭头简单代码示例
2018/01/08 Python
pyhton列表转换为数组的实例
2018/04/04 Python
浅谈pandas中Dataframe的查询方法([], loc, iloc, at, iat, ix)
2018/04/10 Python
Python基于滑动平均思想实现缺失数据填充的方法
2019/02/21 Python
python3+selenium自动化测试框架详解
2019/03/17 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
简单了解Python变量作用域正确使用方法
2020/06/12 Python
浅谈python出错时traceback的解读
2020/07/15 Python
python中append函数用法讲解
2020/12/11 Python
网购亚洲时装、美容产品和生活百货:YesStyle
2016/09/15 全球购物
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
沃达丰英国有限公司:Vodafone英国
2019/04/16 全球购物
几个Linux面试题笔试题
2016/08/01 面试题
公司年会搞笑主持词
2014/03/24 职场文书
分家协议书
2014/04/21 职场文书
幼儿园园长个人总结
2015/03/02 职场文书
关于元旦的广播稿2016
2015/12/17 职场文书
Pytorch 统计模型参数量的操作 param.numel()
2021/05/13 Python