<?php
namespace Home\Controller;
use Think\Controller;
use Think\Model;
class QueryController extends Controller{
    //快捷查询 - 是一种多字段查询的简化写法,
    //多个字段之间用‘|’隔开表示OR
    //用‘&’隔开表示AND
    
    public function Query1(){
        echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
        //不同字段  的 相同查询        
        $usr=M('User');
        //$map['user|email']='樱桃小丸子';
        $map['user&email']='樱桃小丸子';
        echo "<pre>";
        var_dump($usr->where($map)->select());
    }
    
    public function Query2(){
        echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
        //不同字段  的 不同查询        
    
        $usr=M('User');
        $map['id&user']=array(1,'柯南','_multi'=>TRUE);
        //设置'_multi'为true,是为了让id对应1,让user对应“柯南”,否则
        //会出现id对应了1,还要对应“柯南”的情况,而且,这设置要放在数组最后
    
        echo "<pre>";
        var_dump($usr->where($map)->select());
    }
    
    public function Query3(){
        echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
        // 结合表达式的 快捷查询    
    
        $usr=M('User');
        
        //$map['id&user']=array(1,'柯南','_multi'=>TRUE);
        //设置'_multi'为true,是为了让id对应1,让user对应“柯南”,否则
        //会出现id对应了1,还要对应“柯南”的情况,而且,这设置要放在数组最后
    
        $map['id&user']=array(array('gt',1),'樱桃小丸子','_multi'=>true);
    
        echo "<pre>";
        var_dump($usr->where($map)->select());
    }
    public function Query4(){
        echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
        
        //区间查询
        //比如 id>1 and id<3
        //或者 id>1 or id<3
        
        $user=M("User");
        $map['id']=array(array('gt',1),array('lt',3));//注意没有等于
        
        echo "<pre>";
        var_dump($user->where($map)->select());
        
        $map['id']=array(array('lt',1),array('gt',3),'or');
        echo "<pre>";
        var_dump($user->where($map)->select());
    }
    
    //组合查询  -  基于索引数组查询方式的扩展性查询,
    //            可以添加字符串查询(_string)、复合查询(_complex)、请求字符串查询(_query)
    //由于采用的是索引数组,重复的会被覆盖
    public function Query5(){
        echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
        
        $user=M('User');
        
        $map['id']=array('eq',1);
        $map['_string']='user="柯南" AND email="kenan0210@sian.com"';
        // $map['_logic']='OR';
        
        echo "<pre>";
        var_dump($user->where($map)->select());
    }
    
    public function Query6(){
        echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
        
        $user=M('User');
        
        $map['id']=array('gt',1);
        //请求字符串 查询 - 这是URL方式,不需要加引号
        $map['_query']='user=樱桃小丸子&email=labixiaoxin001@google.com&_logic=OR';
        //推荐使用,因为字段名有``护起来
        
        echo "<pre>";
        var_dump($user->where($map)->select());
    }
    
    public function Query7(){
        echo '<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>';
        
        $user=M('User');
        
        $where['user']=array('like','%小%');
        $where['id']=1;
        $where['_logic']='OR';
        $map['_complex']=$where;
        $map['id']=3;
        $map['_logic']='OR';
        
        echo "<pre>";
        var_dump($user->where($map)->select());
    }
    
    //统计  查询
    public function TjQuery(){
        $user=M('User');
        var_dump($user->count());//统计记录总数
        var_dump($user->count('email'));//统计字段email总数,遇到null跳过
        echo "<br />";
        var_dump($user->max('id'));
        var_dump($user->min('id'));
        var_dump($user->avg('id'));
        var_dump($user->sum('id'));
    }    
    
    // 动态查询
    // 借助 PHP5 语言特性,ThinkPHP实现动态查询
    public function Query_getby(){
        //getBy动态查询 //注意找到多个时,只返回一个
        $user=M('User');
        var_dump($user->getByEmail('kswyl_da@gmail.com'));
        var_dump($user->getByUser('旗木卡卡西'));
        var_dump($user->getByUser(array('LIKE','%小%')));
    }    
    
    //getFieldBy查询
    public function Query_getfieldby(){
        $user=M('User');
        //var_dump($user->getFieldByUser('旗木卡卡西','id'));
        var_dump($user->getFieldByUser('旗木卡卡西',array('id','email')));
        //注意,即使想这样想返回多个字段的结果,也会只返回一个(id的 值)
    }
    
    //SQL原生查询
    
    public function Query_read(){
        //ThinkPHP支持原生SQL query读取
        $user=M('User');
        echo "<pre>";
        var_dump($user->query('SELECT * FROM think_user'));
        
    }
    
    //execute写入
    public  function Execute_write(){
        $user=M('User');
        var_dump($user->execute('UPDATE think_user SET user="蜡笔大新" WHERE id=1'));
    }
    
    
} ?>

[tp3.2.1]查询(2)的更多相关文章

  1. tp3.2 复合查询or

    tp3.2 复合查询or $where['goods_name'] = array("like","%$q%");$where['goods_sn'] = ar ...

  2. Tp3.2 复合查询

    我们常常有这样的需求,比如搜索. 搜索出,标题,子标题,内容中包含某某关键字. 这就要and,or结合使用了. $where = ['is_show'=>1,'status'=>1]; / ...

  3. tp3 联表查询

    联表查询D("column") ->field("{$DbPrefix}column.pid,{$DbPrefix}news.*") ->where ...

  4. [tp3.2.1]sql查询语句(一)

    基本查询方式    字符串条件查询,    索引数组条件查询    对象条件查询    SQL语句大小写是一样的,但是,执行的时候有一个小写到大写的转换,所以最好写大写 $condition=new ...

  5. tp3中子查询 逻辑条件是or

    直接用写sql最快 $map['_string'] = 'status=1 AND score>10'; //子查询条件字段不同 $condition['platform'] = 'swap'; ...

  6. tp3.2博客详情页面查询上一篇下一篇

  7. Thinkphp 连接数据库、查询、添加

    一.连接数据库配置及Model数据模型层 1. Thinkphp\conf\convertion.php中找到数据库设置部分,复制到自己的配置文件中,并添加好有关数据库的内容 JiaoWu\Home\ ...

  8. TP3.2.3 接入银联支付

    TP3.2.3 接入银联支付 项目接入银联支付的过程, 在此记录下,希望能帮助开发盆友平坑. 银联SKD链接:https://open.unionpay.com/ajweb/product/newPr ...

  9. 6月16 ThinkPHP连接数据库及Model数据模型层--------查询及数据添加

    连接数据库配置及Model数据模型层 convertion.php config.php 1.在config.php做数据库连接配置 2.修改配置 /* 数据库设置 */ 'DB_TYPE' => ...

随机推荐

  1. continue 语句

    停止循环的当前迭代,并开始新的迭代. continue [label]; 可选的 label 参数指定 continue 应用于哪条语句. 说明 只能在 while.do...while.for.或  ...

  2. Qt Load and Save Image Dialog 加载图片对话框

    在Qt中,我们想要通过对话框来打开某一个图片,可以通过使用QFileDialog来快速实现,参见以下代码: QString fileName = QFileDialog::getOpenFileNam ...

  3. QSpinBox 和 QSlider 联合使用方法

    在Qt中,有时候我们想要联合QSpinBox 和 QSlider,使得移动滑块,QSpinBox中的数据会变化,或者我们在QSpinBox中输入一个数值,响应的滑块也会变化,如下图所示:

  4. ubuntu 上安装 NASM 汇编开发工具

    一般系统自带NASM可通过 输入 nasm -version 检查,若是没有 可用下述指令安装: sudo apt-get install nasm 安装过程执行完毕后 再次输入 : nasm -ve ...

  5. php标签云制作——数据表的结构和查询方法

    1.数据表的结构: 创建建两张数据表,结构如下: 标签tag表: 文章mood表: 其中mood表中的tag字段,以tag表的id字段+“,”+tag表的id字段, 2.查询方法: 例如:如果需要某篇 ...

  6. poj1700

    这题的最坑的地方就是每步可能会有两种情况,这两情况起初我都单独考虑了,但就是没放在一起考虑...wa个不停,果然贪心是一个很考验思维的东西. 这里可以这样考虑,在运人的过程中,河的起始岸最后终将剩下一 ...

  7. asp.net 中 UEditor 图片和附件上传失败的处理方法

    1.0 找到 net 文件夹下面的 web.config 配置文件,注释掉如下的两句: 2.0 Uploader文件默认属性为编译,将其属性改为内容以后重新运行程序,图片上传成功. 3.0 删除 im ...

  8. PHP如何通过SQL语句将数据写入MySQL数据库呢?

    1,php和MySQL建立连接关系 2,打开 3,接受页面数据,PHP录入到指定的表中 1.2两步可直接使用一个数据库链接文件即可:conn.php <?phpmysql_connect(&qu ...

  9. IOS第11天(4:UIDatePicker时间选择,和键盘处理,加载xib文件,代理模式)

    ***控制层 #import "ViewController.h" #import "CZKeyboardToolbar.h" @interface ViewC ...

  10. JavaScript 入门教程一 开篇介绍

    一.JavaScript 刚开始是为了解决一些由服务器端进行的验证而开发的前端语言.在宽带还不普及的90年代,当用户辛苦输入很多信息并提交给服务器后,等了漫长的时间,等到的不是提交成功的提示而是某些必 ...