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函数解决SQL injection
Oct 09 PHP
php生成的html meta和link标记在body标签里 顶部有个空行
May 18 PHP
PHP 日,周,月点击排行统计
Jan 11 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
Mar 13 PHP
Laravel 5框架学习之Eloquent (laravel 的ORM)
Apr 08 PHP
php基于Fleaphp框架实现cvs数据导入MySQL的方法
Feb 23 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
Oct 17 PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 PHP
php基于自定义函数记录log日志方法
Jul 21 PHP
Memcached介绍及php-memcache扩展安装
Apr 01 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注入点构造代码
2008/06/14 PHP
php实现分页工具类分享
2014/01/09 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
javascript下查找父节点的简单方法
2007/08/13 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
浅谈Javascript数据属性与访问器属性
2016/07/26 Javascript
Bootstrap Table表格一直加载(load)不了数据的快速解决方法
2016/09/17 Javascript
浅析使用BootStrap TreeView插件实现灵活配置快递模板
2016/11/28 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
JavaScript实现事件的中断传播和行为阻止方法示例
2017/01/20 Javascript
Angularjs使用指令做表单校验的方法
2017/03/31 Javascript
详谈DOM简介及节点、属性、查找节点的方法
2017/11/16 Javascript
快速解决vue在ios端下点击响应延时的问题
2018/08/27 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
python开发之str.format()用法实例分析
2016/02/22 Python
Python 两个列表的差集、并集和交集实现代码
2016/09/21 Python
python中is与双等于号“==”的区别示例详解
2017/11/21 Python
Python流程控制 if else实现解析
2019/09/02 Python
Django之使用内置函数和celery发邮件的方法示例
2019/09/16 Python
python wxpython 实现界面跳转功能
2019/12/17 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
贝佳斯官方网站:Borghese
2020/05/08 全球购物
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
制定岗位职责的原则
2013/11/08 职场文书
新闻发布会主持词
2014/03/28 职场文书
医德医风个人工作总结2014
2014/11/14 职场文书
2014年司机工作总结
2014/11/21 职场文书
优秀团支部申报材料
2014/12/26 职场文书
2015年高校图书馆工作总结
2015/04/30 职场文书
入党转正申请报告
2015/05/15 职场文书
关于开学的感想
2015/08/10 职场文书