[tp3.2.1]查询(2)

<?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="[email protected]"‘;
        // $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 protected]&_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(‘[email protected]‘));
        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‘));
    }
    
    
}

?>

时间: 2024-11-08 23:05:02

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

tp3.2 ----- 关联查询

alias      用于设置当前数据表的别名,便于使用其他的连贯操作例如join方法等. $Model = M('User'); $Model->alias('a')->join('__DEPT__ b ON b.user_id= a.id')->select(); 最终生成的SQL语句类似于: SELECT * FROM think_user a INNER JOIN think_dept b ON b.user_id= a.id; 列2: $info = D('Manager')-

tp3 联表查询

D("column") ->field("{$DbPrefix}column.pid,{$DbPrefix}news.*") ->where(array("{$DbPrefix}news.style"=>"woman")) ->order("id desc") ->limit(20) ->join("__NEWS__ on __NEWS__.pid = __NE

Tp3.2 组合查询

// $where['status'] = 6; // // or // $where['final_price'] = ['gt', 0]; // $where['status'] = 4; $where['_string'] = ' (status = 6) OR ( status = 4 AND final_price > 0) '; 用string最好实现了! 请欣赏优美的代码! /** * 获取订单列表 */ public function getOrderList() { if (!

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

基本查询方式    字符串条件查询,    索引数组条件查询    对象条件查询    SQL语句大小写是一样的,但是,执行的时候有一个小写到大写的转换,所以最好写大写 $condition=new \stdClass();//对象形式查询stdClass是php内置类,可以理解为一个空类,这里要把条件作为字段保存到其中,而 反斜杠\ 是将命名空间设置为  根目录, 否则会导致当前目录找不到此类. 表达式查询    大于 小于  等于    自定义表达式    格式:    $map['字段名'

Tp3.2 RESTFul 根据地区查询生成xml、html、json的Api接口的天气信息

1.在控制器页面: <?php // 本类由系统自动生成,仅供测试用途 namespace Home\Controller; use Think\Controller\RestController; class IndexController extends RestController{     //显示页面     public function index(){        //print_r($this->_method);die;         $Name = $_GET['da

tp3.2原生sql拼接查询

//获取搜索结果          $sql = "SELECT * FROM `br_esf_village_price` p,(SELECT villageId,MAX(updateTime) max_time FROM br_esf_village_price GROUP BY villageId) as b,br_esf_village v WHERE p.villageId= b.villageId AND p.updateTime=b.max_time AND v.villageId

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

连接数据库配置及Model数据模型层 convertion.php config.php 1.在config.php做数据库连接配置 2.修改配置 /* 数据库设置 */ 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 'mydb', // 数据库名 'DB_USER' => 'root', // 用户名 'DB_PWD' => '', // 密码 'DB_PORT'

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

一.连接数据库配置及Model数据模型层 1. Thinkphp\conf\convertion.php中找到数据库设置部分,复制到自己的配置文件中,并添加好有关数据库的内容 JiaoWu\Home\conf\config.php: 2. 制作model模型 a)  model本身就是一个类文件 b)  数据库中的每个数据表都对应一个model模型文件 c)  最简单的数据model模型类 在Home\Model文件夹中新建一个模型文件:InfoModel.class.php <?php nam

【TP3.2】TP3.2下实现ajax分页(原创+亲测可用)

一,写在最开始:ajax分页的原理,是利用了js的ajax执行请求,获取分页list和分页page [代码块],去替换页面显示数据的[代码块] 技术:js的ajax + TP3.2的fetch("Index/data")技术,仅此而已. 1.在Library\Think\ 目录下直接加入以下代码:Ajaxpage.class.php <?php /** * ajax分页类,有namespace,使用方法: * 控制器直接$ajaxpage = new \Think\Ajaxpag