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 相关文章推荐
Smarty结合Ajax实现无刷新留言本实例
Jan 02 PHP
php排序算法(冒泡排序,快速排序)
Oct 09 PHP
解析:通过php socket并借助telnet实现简单的聊天程序
Jun 18 PHP
PHP中spl_autoload_register函数的用法总结
Nov 07 PHP
PHP动态页生成静态页的3种常用方法
Nov 13 PHP
php利用cookie实现自动登录的方法
Dec 10 PHP
新浪微博OAuth认证和储存的主要过程详解
Mar 27 PHP
php常量详细解析
Oct 27 PHP
PHP获取网站中各文章的第一张图片的代码示例
May 20 PHP
Zend Framework过滤器Zend_Filter用法详解
Dec 09 PHP
PHP让数组中有相同值的组成新的数组实例
Dec 31 PHP
thinkPHP框架实现多表查询的方法
Jun 14 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
UCenter Home二次开发指南
2009/05/28 PHP
PHP实现远程下载文件到本地
2015/05/17 PHP
php打包压缩文件之ZipArchive方法用法分析
2016/04/30 PHP
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
jquery浏览器滚动加载技术实现方案
2014/06/03 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
jQuery实现鼠标经过购物车出现下拉框代码(推荐)
2016/07/21 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
JavaScript易错知识点整理
2016/12/05 Javascript
bootstrap css样式之表单
2017/01/19 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
vue源码学习之Object.defineProperty对象属性监听
2018/05/30 Javascript
Promise.all中对于reject的处理方法
2018/08/01 Javascript
webpack常用配置总览(小结)
2019/11/18 Javascript
python实现rest请求api示例
2014/04/22 Python
Python爬取京东的商品分类与链接
2016/08/26 Python
Python简单实现自动删除目录下空文件夹的方法
2017/08/29 Python
对python多线程中互斥锁Threading.Lock的简单应用详解
2019/01/11 Python
Python读取表格类型文件代码实例
2020/02/17 Python
解决jupyter notebook import error但是命令提示符import正常的问题
2020/04/15 Python
英国工具中心:UK Tool Centre
2017/07/10 全球购物
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
会计实习生工作总结的自我评价
2013/10/07 职场文书
新闻专业本科生的自我评价分享
2013/11/20 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
2014年内勤工作总结
2014/11/24 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
病人家属写给医院的感谢信
2015/01/23 职场文书
事业单位年度考核个人总结
2015/02/12 职场文书
盗窃罪辩护词范文
2015/05/21 职场文书
主持人开场白台词
2015/05/29 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
纯html+css实现打字效果
2021/08/02 HTML / CSS
MyBatis 动态SQL全面详解
2021/10/05 MySQL