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面向对象的使用教程 简单数据库连接
Nov 25 PHP
php的一个登录的类 [推荐]
Mar 16 PHP
php 获取本机外网/公网IP的代码
May 09 PHP
PHP中ob_start函数的使用说明
Nov 11 PHP
php更新修改excel中的内容实例代码
Feb 26 PHP
mysql_connect localhost和127.0.0.1的区别(网络层阐述)
Mar 26 PHP
PHP中Closure类的使用方法及详解
Oct 09 PHP
WordPress中注册菜单与调用菜单的方法详解
Dec 18 PHP
php实现的二叉树遍历算法示例
Jun 15 PHP
php类自动装载、链式操作、魔术方法实现代码
Jul 23 PHP
Laravel数据库读写分离配置的方法
Oct 13 PHP
php png失真的原因及解决办法
Nov 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/06/03 PHP
递归实现php数组转xml的代码分享
2015/05/14 PHP
php导出csv文件,可导出前导0实例代码
2016/11/16 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
2019/06/06 PHP
jQuery+css实现百度百科的页面导航效果
2014/12/16 Javascript
jQuery源码解读之removeAttr()方法分析
2015/02/20 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
jQuery实现边框动态效果的实例代码
2016/09/23 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
快速解决brew安装特定版本flow的问题
2018/05/17 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
JavaScript常见事件处理程序实例总结
2019/01/05 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
深入浅析vue全局环境变量和模式
2020/04/28 Javascript
跟老齐学Python之编写类之二方法
2014/10/11 Python
python字典DICT类型合并详解
2017/08/17 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
Python二叉树的遍历操作示例【前序遍历,中序遍历,后序遍历,层序遍历】
2018/12/24 Python
Python实现字符串匹配的KMP算法
2019/04/04 Python
Pytorch卷积层手动初始化权值的实例
2019/08/17 Python
Python 文件操作之读取文件(read),文件指针与写入文件(write),文件打开方式示例
2019/09/29 Python
python3 pillow模块实现简单验证码
2019/10/31 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
英语专业学子个人的自我评价
2013/10/02 职场文书
自我鉴定 电子商务专业
2014/01/30 职场文书
领导调研接待方案
2014/02/27 职场文书
社区服务标语
2014/07/01 职场文书
2014年置业顾问工作总结
2014/11/17 职场文书
离婚案件原告代理词
2015/05/23 职场文书
入党群众意见范文
2015/06/02 职场文书
红歌会主持词
2015/07/02 职场文书
2016党校学习心得体会
2016/01/07 职场文书
python 办公自动化——基于pyqt5和openpyxl统计符合要求的名单
2021/05/25 Python