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(视频)Http下载
Dec 12 PHP
PHP var_dump遍历对象属性的函数与应用代码
Jun 04 PHP
php中json_encode中文编码问题分析
Sep 13 PHP
php读取mysql乱码,用set names XXX解决的原理分享
Dec 29 PHP
基于Zookeeper的使用详解
May 02 PHP
php 批量替换程序的具体实现代码
Oct 04 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
Symfony2中被遗弃的getRequest()方法分析
Mar 17 PHP
php中10个不同等级压缩优化图片操作示例
Nov 14 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
Aug 17 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
Sep 02 PHP
php web环境和命令行环境下查找php.ini的位置
Jul 17 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函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
php判断当前用户已在别处登录的方法
2015/01/06 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
基于PHP实现用户注册登录功能
2016/10/14 PHP
php数据库操作model类(使用__call方法)
2016/11/16 PHP
php无限级分类实现评论及回复功能
2019/02/18 PHP
jQuery选择没有colspan属性的td的代码
2010/07/06 Javascript
jQuery ajax(复习)—Baidu ajax request分离版
2013/01/24 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
jquery滚动特效集锦
2015/06/03 Javascript
XML、HTML、CSS与JS的区别整理
2016/02/18 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
jQuery EasyUI中的日期控件DateBox修改方法
2016/11/09 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
vue-cli配置文件——config篇
2018/01/04 Javascript
vue项目中使用百度地图的方法
2018/06/08 Javascript
详解vue移动端项目代码拆分记录
2019/03/15 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
vue路由分文件拆分管理详解
2020/08/13 Javascript
python避免死锁方法实例分析
2015/06/04 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
Python实现合并同一个文件夹下所有PDF文件的方法示例
2018/04/28 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
Python循环中else,break和continue的用法实例详解
2019/07/11 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
CSS3正方体旋转示例代码
2013/08/08 HTML / CSS
HTML5 Canvas基本线条绘制的实例教程
2016/03/17 HTML / CSS
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
美容院经理岗位职责
2014/04/03 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
2015年护士工作总结范文
2015/03/31 职场文书
MySQL 聚合函数排序
2021/07/16 MySQL
Java界面编程实现界面跳转
2022/06/16 Java/Android