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作的文本留言本的例子(四)
Oct 09 PHP
UCenter Home二次开发指南
May 28 PHP
PHP编程函数安全篇
Jan 08 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
Mar 23 PHP
php中header设置常见文件类型的content-type
Jun 23 PHP
PHP 7.0.2 正式版发布
Jan 08 PHP
php用正则判断是否为数字的方法
Mar 25 PHP
php中foreach结合curl实现多线程的方法分析
Sep 22 PHP
php使用curl实现ftp文件下载功能
May 16 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
Feb 19 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
Nov 14 PHP
PHP date_default_timezone_set()设置时区操作实例分析
May 16 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生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
2014/01/19 PHP
php简单判断文本编码的方法
2015/07/30 PHP
PHP连接MYSQL数据库的3种常用方法
2017/02/27 PHP
PHP中常见的密码处理方式和建议总结
2018/10/14 PHP
用js来解决ajax读取页面乱码
2010/11/28 Javascript
jQuery load方法用法集锦
2011/12/06 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
鼠标经过显示二级菜单js特效
2013/08/13 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
jquery简单实现鼠标经过导航条改变背景图
2013/12/17 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
JavaScript实现url参数转成json形式
2016/09/25 Javascript
Bootstrap面板(Panels)的简单实现代码
2017/03/17 Javascript
jQuery remove()过滤被删除的元素(推荐)
2017/07/18 jQuery
JavaScript数据类型的存储方法详解
2017/08/25 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
js实现消灭星星(web简易版)
2020/03/24 Javascript
python实现稀疏矩阵示例代码
2017/06/09 Python
python3安装pip3(install pip3 for python 3.x)
2018/04/03 Python
python3使用flask编写注册post接口的方法
2018/12/28 Python
python实现超市商品销售管理系统
2019/10/25 Python
用python拟合等角螺线的实现示例
2019/12/27 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
俄罗斯在线购买飞机票、火车票、巴士票网站:Tutu.ru
2020/03/16 全球购物
给医务人员表扬信
2014/01/12 职场文书
农村党支部书记司法四风问题对照检查材料
2014/09/26 职场文书
银行贷款委托书范本
2014/10/11 职场文书
医院科室评语
2015/01/04 职场文书
销售辞职信范文
2015/03/02 职场文书
现役军人家属慰问信
2015/03/24 职场文书
感恩老师主题班会
2015/08/12 职场文书