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 相关文章推荐
使用apache模块rewrite_module (转)
Feb 14 PHP
利用discuz实现PHP大文件上传应用实例代码
Nov 14 PHP
php替换超长文本中的特殊字符的函数代码
May 22 PHP
工厂模式在Zend Framework中应用介绍
Jul 10 PHP
如何在Ubuntu下启动Apache的Rewrite功能
Jul 05 PHP
php更新mysql后获取改变行数的方法
Dec 25 PHP
PHP也能干大事 随机函数
Apr 14 PHP
php使用MySQL保存session会话的方法
Jun 26 PHP
php远程下载类分享
Apr 13 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
CakePHP框架Session设置方法分析
Feb 23 PHP
PHP实现的ID混淆算法类与用法示例
Aug 10 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
一条久听不愿放下的DIY森海MX500,三言两语话神奇
2021/03/02 无线电
手把手教你使用DedeCms的采集的图文教程
2007/03/11 PHP
php调用shell的方法
2014/11/05 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
php字符集转换
2017/01/23 PHP
PHP实现获取url地址中顶级域名的方法示例
2019/06/05 PHP
javascript 控制弹出窗口
2007/04/10 Javascript
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
jquery Mobile入门—多页面切换示例学习
2013/01/08 Javascript
Node.js的包详细介绍
2015/01/14 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
基于javascript实现按圆形排列DIV元素(二)
2016/12/02 Javascript
拖动时防止选中
2017/02/03 Javascript
jQuery插件Echarts实现的双轴图效果示例【附demo源码下载】
2017/03/04 Javascript
Nodejs 复制文件/文件夹的方法
2017/08/24 NodeJs
webpack3之loader全解析
2017/10/26 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
Python中的自省(反射)详解
2015/06/02 Python
python素数筛选法浅析
2018/03/19 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
python中多个装饰器的调用顺序详解
2019/07/16 Python
python连接、操作mongodb数据库的方法实例详解
2019/09/11 Python
python Scrapy框架原理解析
2021/01/04 Python
美国创意之家:BulbHead
2017/07/12 全球购物
自荐信封面
2013/12/04 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
租车协议书范本
2014/04/22 职场文书
初中学生评语大全
2014/04/24 职场文书
2014年冬季防火方案
2014/05/21 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
保送生自荐信
2015/03/06 职场文书
Python max函数中key的用法及原理解析
2021/06/26 Python
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android
MySQL 条件查询的常用操作
2022/04/28 MySQL