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 相关文章推荐
一个高ai的分页函数和一个url函数
Oct 09 PHP
队列在编程中的实际应用(php)
Sep 04 PHP
php实现文件下载更能介绍
Nov 23 PHP
如何用php获取文件名后缀
Jun 09 PHP
php颜色转换函数hex-rgb(将十六进制格式转成十进制格式)
Sep 23 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
Oct 01 PHP
php程序内部post数据的方法
Mar 31 PHP
分享五个PHP7性能优化提升技巧
Dec 07 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
php使用正则表达式获取字符串中的URL
Dec 29 PHP
Yii2配置Nginx伪静态的方法
May 05 PHP
phpcmsv9.0任意文件上传漏洞解析
Oct 20 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 生成N个不重复的随机数
2015/01/21 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
提高网站性能之 如何对待JavaScript
2009/10/31 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
node.js中的fs.readdir方法使用说明
2014/12/17 Javascript
JQuery选择器绑定事件及修改内容的方法
2015/01/23 Javascript
form+iframe解决跨域上传文件的方法
2016/11/18 Javascript
jQuery EasyUI之验证框validatebox实例详解
2017/04/10 jQuery
JavaScript实现简单评论功能
2017/08/17 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
NodeJS服务器实现gzip压缩的示例代码
2018/10/12 NodeJs
vue input输入框关键字筛选检索列表数据展示
2020/10/26 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
js实现直播点击飘心效果
2020/08/19 Javascript
Python利用ansible分发处理任务
2015/08/04 Python
Python自动生产表情包
2017/03/17 Python
解决Python pandas df 写入excel 出现的问题
2018/07/04 Python
python实现动态数组的示例代码
2019/07/15 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
django有外键关系的两张表如何相互查找
2020/02/10 Python
Python requests模块cookie实例解析
2020/04/14 Python
Python中关于logging模块的学习笔记
2020/06/03 Python
Python中的__init__作用是什么
2020/06/09 Python
Python自动化测试中yaml文件读取操作
2020/08/20 Python
如何把python项目部署到linux服务器
2020/08/26 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
用HTML5.0制作网页的教程
2010/05/30 HTML / CSS
美国专业汽车音响和移动电子产品零售商:Car Toys
2019/05/13 全球购物
2014新课程改革心得体会
2014/03/10 职场文书
学习决心书
2014/03/11 职场文书
地质灾害防治方案
2014/05/14 职场文书
企业团队精神心得体会
2016/01/19 职场文书
公文写作:新员工转正申请书范本3篇!
2019/08/07 职场文书