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 相关文章推荐
PHP5 安装方法
Jan 15 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
Dec 05 PHP
ThinkPHP CURD方法之data方法详解
Jun 18 PHP
php验证码实现代码(3种)
Sep 07 PHP
大家须知简单的php性能优化注意点
Jan 04 PHP
深入理解PHP原理之执行周期分析
Jun 01 PHP
详解php用curl调用接口方法,get和post两种方式
Jan 13 PHP
php使用flock阻塞写入文件和非阻塞写入文件的实例讲解
Jul 10 PHP
ThinkPHP框架表单验证操作方法
Jul 19 PHP
PHP删除数组中特定元素的两种方法
Feb 28 PHP
Laravel登录失败次数限制的实现方法
Aug 26 PHP
php去除deprecated的实例方法
Nov 17 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
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
PHP设置头信息及取得返回头信息的方法
2016/01/25 PHP
php curl上传、下载、https登陆实现代码
2017/07/23 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
2007/04/29 Javascript
不用MOUSEMOVE也能滑动啊
2007/05/23 Javascript
juqery 学习之三 选择器 子元素与表单
2010/11/25 Javascript
javascript 得到文件后缀名的思路及实现
2020/05/09 Javascript
ajax请求乱码的解决方法(中文乱码)
2014/04/10 Javascript
javascript学习笔记--数字格式类型
2014/05/22 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
js+canvas绘制五角星的方法
2016/01/28 Javascript
jQuery选择器及jquery案例详解(必看)
2016/05/20 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
微信小程序 http请求详细介绍
2016/10/09 Javascript
jquery 判断是否支持Placeholder属性的方法
2017/02/07 Javascript
weebox弹出窗口不居中显示的解决方法
2017/11/27 Javascript
Three.js 再探 - 写一个微信跳一跳极简版游戏
2018/01/04 Javascript
Vue检测屏幕变化来改变不同的charts样式实例
2020/10/26 Javascript
[35:39]完美世界DOTA2联赛PWL S2 FTD.C vs Rebirth 第二场 11.22
2020/11/24 DOTA
python正则表达式中的括号匹配问题
2014/12/14 Python
Python的Flask框架中web表单的教程
2015/04/20 Python
Python用zip函数同时遍历多个迭代器示例详解
2016/11/14 Python
便捷提取python导入包的属性方法
2018/10/15 Python
用Python解决x的n次方问题
2019/02/08 Python
python实现自动清理重复文件
2020/08/24 Python
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
MSC邮轮官方网站:加勒比海、地中海和世界各地的假期
2018/08/27 全球购物
美国最值得信赖的宠物药房:Allivet
2019/03/23 全球购物
技校生自我鉴定范文
2013/09/26 职场文书
2016大一新生军训感言
2015/12/08 职场文书
低门槛开发iOS、Android、小程序应用的前端框架详解
2021/10/16 Javascript
Java 实战项目之家居购物商城系统详解流程
2021/11/11 Java/Android
十大好看的穿越动漫排名:《瑞克和莫蒂》第一,国漫《有药》在榜
2022/03/18 日漫