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 相关文章推荐
基于mysql的论坛(4)
Oct 09 PHP
批量修改RAR文件注释的php代码
Nov 20 PHP
探讨PHP删除文件夹的三种方法
Jun 09 PHP
PHP-Fcgi下PHP的执行时间设置方法
Aug 02 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
Apr 08 PHP
ThinkPHP自动转义存储富文本编辑器内容导致读取出错的解决方法
Aug 08 PHP
PHP实现163邮箱自动发送邮件
Mar 29 PHP
使用PHPMailer发送邮件实例
Feb 15 PHP
PHP实现字符串大小写转函数的功能实例
Feb 06 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
May 05 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 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中的错误处理、异常处理机制分析
2012/05/07 PHP
php中使用__autoload()自动加载未定义类的实现代码
2013/02/06 PHP
php+flash+jQuery多图片上传源码分享
2020/07/27 PHP
PHP实现一个限制实例化次数的类示例
2019/09/16 PHP
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
js使用html()或text()方法获取设置p标签的显示的值
2014/08/01 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
Immutable 在 JavaScript 中的应用
2016/05/02 Javascript
详解Bootstrap的iCheck插件checkbox和radio
2016/08/24 Javascript
js前端解决跨域问题的8种方案(最新最全)
2016/11/18 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
JS正则表达式验证端口范围(0-65535)
2020/01/06 Javascript
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
全面了解Python环境配置及项目建立
2016/06/30 Python
动感网页相册 python编写简单文件夹内图片浏览工具
2016/08/17 Python
python中copy()与deepcopy()的区别小结
2018/08/03 Python
python3 unicode列表转换为中文的实例
2018/10/26 Python
python实现的自动发送消息功能详解
2019/08/15 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
使用OpenCV circle函数图像上画圆的示例代码
2019/12/27 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
大学生护理专业自荐信
2013/10/03 职场文书
成人教育自我鉴定
2013/11/01 职场文书
2014年社区计生工作总结
2014/11/18 职场文书
2014年法务工作总结
2014/12/11 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
离婚案件原告代理词
2015/05/23 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
Java实现聊天机器人完善版
2021/07/04 Java/Android
python数据可视化使用pyfinance分析证券收益示例详解
2021/11/20 Python
springboot 自定义配置 解决Boolean属性不生效
2022/03/18 Java/Android