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 和 MySQL 基础教程(二)
Oct 09 PHP
phpmyadmin 访问被拒绝的真实原因
Jun 15 PHP
PHP与C#分别格式化文件大小的代码
May 14 PHP
Linux编译升级php的详细方法
Nov 04 PHP
在PHP中使用redis
Nov 04 PHP
zend framework文件上传功能实例代码
Dec 25 PHP
利用浏览器的Javascript控制台调试PHP程序
Jan 08 PHP
PHP轻量级数据库操作类Medoo增加、删除、修改、查询例子
Jul 04 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
Nov 12 PHP
PHP实现求连续子数组最大和问题2种解决方法
Dec 26 PHP
php和html的区别点详细总结
Sep 24 PHP
php中Swoole的热更新实现代码实例
Mar 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
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
php使用strip_tags()去除html标签仍有空白的解决方法
2016/07/28 PHP
基于Swoole实现PHP与websocket聊天室
2016/08/03 PHP
phpinfo的知识点总结
2019/10/10 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
Code:findPosX 和 findPosY
2006/12/20 Javascript
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
分享27款非常棒的jQuery 表单插件
2011/03/28 Javascript
文本框只能选择数据到文本框禁止手动输入
2013/11/22 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
JavaScript中变量提升与函数提升经典实例分析
2018/07/26 Javascript
Angular resolve基础用法详解
2018/10/03 Javascript
vue-cli3 项目优化之通过 node 自动生成组件模板 generate View、Component
2019/04/30 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
微信小程序间使用navigator跳转传值问题实例分析
2020/03/27 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
pandas.DataFrame.to_json按行转json的方法
2018/06/05 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
Xadmin+rules实现多选行权限方式(级联效果)
2020/04/07 Python
jupyter实现重新加载模块
2020/04/16 Python
详解Python中list[::-1]的几种用法
2020/11/16 Python
TUMI澳大利亚网站:美国旅行箱包品牌
2017/03/27 全球购物
医学专业本科毕业生自我鉴定
2013/12/28 职场文书
医学生职业生涯规划书范文
2014/03/13 职场文书
关于护士节的演讲稿
2014/05/26 职场文书
医药销售自我评价200字
2014/09/11 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
员工工作表现自我评价
2015/03/06 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
《叶问2》观后感
2015/06/15 职场文书
加薪申请书应该这样写!
2019/07/04 职场文书
62句有关感恩节文案(推荐收藏)
2019/11/28 职场文书
Jupyter Notebook内使用argparse报错的解决方案
2021/06/03 Python
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android