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代码
Jun 08 PHP
php class中public,private,protected的区别以及实例分析
Jun 18 PHP
关于crontab的使用详解
Jun 24 PHP
php类声明和php类使用方法示例分享
Mar 29 PHP
destoon实现首页显示供应、企业、资讯条数的方法
Jul 15 PHP
php操作(删除,提取,增加)zip文件方法详解
Mar 12 PHP
PHP sleep()函数, usleep()函数
Aug 25 PHP
PHP实现登录搜狐广告获取广告联盟数据的方法【附demo源码】
Oct 14 PHP
php实时倒计时功能实现方法详解
Feb 27 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
php下载远程大文件(获取远程文件大小)的实例
Jun 17 PHP
php readfile()修改文件上传大小设置
Aug 11 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中的字符串函数
2006/10/09 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
2011/07/12 PHP
神盾加密解密教程(一)PHP变量可用字符
2014/05/28 PHP
PHP批量查询WordPress留言者E-mail地址实现方法
2015/02/15 PHP
PHP静态成员变量
2017/02/14 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
简单实例处理url特殊符号&amp;处理(2种方法)
2013/04/02 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
jquery实现的代替传统checkbox样式插件
2015/06/19 Javascript
在AngularJS框架中处理数据建模的方式解析
2016/03/05 Javascript
AngularJS 中的事件详解
2016/07/28 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
JS简单实现动态添加HTML标记的方法示例
2018/04/08 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
基于vue2.0的活动倒计时组件countdown(附源码下载)
2018/10/09 Javascript
IE9 elementUI文件上传的问题解决
2018/10/17 Javascript
vant IndexBar实现的城市列表的示例代码
2019/11/20 Javascript
基于vue和bootstrap实现简单留言板功能
2020/05/30 Javascript
python线程锁(thread)学习示例
2013/12/04 Python
python脚本实现xls(xlsx)转成csv
2016/04/10 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
python实现自主查询实时天气
2018/06/22 Python
python找出完数的方法
2018/11/12 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
Python 输出时去掉列表元组外面的方括号与圆括号的方法
2018/12/24 Python
python调用c++ ctype list传数组或者返回数组的方法
2019/02/13 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
通过代码实例解析Pytest运行流程
2020/08/20 Python
python 5个实用的技巧
2020/09/27 Python
德国旅游网站:weg.de
2018/06/03 全球购物
大堂副理的岗位职责范文
2014/02/17 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
2015年话务员工作总结
2015/04/29 职场文书
大学生入党自传2015
2015/06/26 职场文书
mysql中关键词exists的用法实例详解
2022/06/10 MySQL