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 相关文章推荐
多文件上载系统完整版
Oct 09 PHP
php下实现农历日历的代码
Mar 07 PHP
PHP 中文乱码解决办法总结分析
Jul 30 PHP
php获取post中的json数据的实现方法
Jun 08 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
php中try catch捕获异常实例详解
Nov 21 PHP
浅析php单例模式
Nov 25 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
Dec 17 PHP
smarty循环嵌套用法示例分析
Jul 19 PHP
PHP 文件锁与进程锁的使用示例
Aug 07 PHP
laravel实现按时间日期进行分组统计方法示例
Mar 23 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
javascript 面向对象 function类
2010/05/13 Javascript
jquery div 居中技巧应用介绍
2012/11/24 Javascript
IE不支持getElementsByClassName最终完美解决方案
2012/12/17 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
关于获取DIV内部内容报错的原因分析及解决办法
2016/01/29 Javascript
Bootstrap网格系统详解
2016/04/26 Javascript
简单封装js的dom查询实例代码
2016/07/08 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
2016/12/08 Javascript
浅谈Node模块系统及其模式
2017/11/17 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
js笔试题-接收get请求参数
2019/06/15 Javascript
jQuery利用cookie 实现本地收藏功能(不重复无需多次命名)
2019/11/07 jQuery
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
Python二维码生成库qrcode安装和使用示例
2014/12/16 Python
Python基于DES算法加密解密实例
2015/06/03 Python
python字典多键值及重复键值的使用方法(详解)
2016/10/31 Python
python 实现将txt文件多行合并为一行并将中间的空格去掉方法
2018/12/20 Python
Django组件cookie与session的具体使用
2019/06/05 Python
django 连接数据库 sqlite的例子
2019/08/14 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
美国渔具店:FishUSA
2019/08/07 全球购物
自荐信写法介绍
2014/01/25 职场文书
《阳光》教学反思
2014/02/23 职场文书
工作年限证明模板
2014/11/01 职场文书
2014年涉外离婚协议书范本
2014/11/20 职场文书
2014年反洗钱工作总结
2014/11/22 职场文书
销售经理工作检讨书
2015/02/19 职场文书
工会积极分子个人总结
2015/03/03 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js
MySQL如何构建数据表索引
2021/05/13 MySQL
新手必备Python开发环境搭建教程
2021/05/28 Python