• 模型(modle)


    MVC模式三:模型操作数据库,之后注册变量于模板,之后用控制器的dispaly()方法显示;

    一、跨控制器调用方法
    因为控制器的实质是类,所以在该方法中造一个要调用的类的对象,调用他的方法;
    比如,在main控制器中调用index控制器的方法,就先在main控制器中造一个indexController的对象,再调用方法;
    具体实施方式:
    //跨控制器调用方法
        function method(){
            //原始方法
            //$ff=new HomeControllerIndexController();//绝对路径
            //$ff=new IndexController();//相对路径
            //$ff->xianshi(); 
           
         //A方法 //$ff=A('Index'); //$ff=A("Admin/index")//A方法可以看成是原始方法的简写,注意括号内的路径写法 //$ff->xianshi(); //$ff是控制器的实例化对象=>具体的控制器
        //R方法,直接输出
    echo R("index/xianshi");//注意写法 }

    二、模型=>操作数据库(查)

    表<=>类
    字段<=>成员变量
    MVC模式的第三种模式:操作数据库
    function DB(){                        
            //操作数据库
            $dx=D();//第一步是建一个模型对象
            //三种方式=>造模型对象        
            //$dx=new HomeModelUsersModel();//原始方式,必须要有原型文件,创建的对象属于子类
            //$dx=D("car");//D方法,不用做原型文件,创建的对象属于父类
            //$dx=M("car");//M方法,不用做原型文件,创建的对象属于父类
            //var_dump($dx);        
            
            //第二步访问数据库        
            //方法一:连贯操作
            //$this->jia()->method();//连贯操作的意思$this->jia()返回$this;
            //$dx=$dx->select();//查询
            //$dx=$dx->select("c001,c002");
            //$dx=$dx->find("c001");//找特定的数据根据主键值找;
            
            //where 可以加查询条件
            //$attr=$dx->where("brand!='b002'")->select();
            
            //table可以切换要操作的表
            //$attr=$dx->table("info")->select();
            
            //alias可以设置表的别名(知道就行)
            //$attr=$dx->alias("汽车")->select();
            
            //field可以指定查询的字段
            //$attr=$dx->field("code,name")->select();
            
            //order可以加排序条件
            //$attr=$dx->order("brand desc")->select();
            
            //group可以分组
            //$attr=$dx->field("brand")->group("brand")->select();
            
            //having可以加分组后的条件
            //$attr=$dx->field("brand")->group("brand")->having("count(*)>=2")->select();
            
            //join可以连接多个表,在field里面要给字段加别名
            //$attr =$dx->field("Info.Code as 代号,Info.Name as 姓名,Sex as 性别,Nation.Name as 民族名称")->join("Nation on Info.Nation = Nation.Code")->select();
            
            //Unition联合查询
            /*$sql="select name from car union select name from users";
            $attr=$dx->query($sql);*/
            //$attr=$dx->field("name")->union("select name from users")->select();
            
            //distinct去重
            //$attr=$dx->field("brand")->distinct(true)->select();
            
            //limit分页,参数分别代表跳过多少条,取多少条
            //$attr=$dx->limit(2,5)->select();
            
            //page分页,参数分别代表当前页,取多少条
            //$attr=$dx->page(3,5)->select();
            
            //聚合函数
            //取数据总条数
            //$attr=$dx->count("*");    
            //取某一列的和
            //$attr=$dx->Sum("price");        
            //取平均值
            //$attr=$dx->avg("price");        
            //取最大值
            //$attr=$dx->max("price");        
            //取最小值
            //$attr=$dx->min("price");        
            
            //方法二:写sql语句
            $sql="select * from nation";
            $attr=$dx->query($sql);
            //$sql="insert into car (code,name) values('c022','解决')";
            //$attr=$dx->execute($sql);        
            //var_dump($attr);                
            
            //第三步注册变量到视图模板并显示
            $this->assign("test",10);
            $this->assign("info",$attr);
            $this->display();
            }

     视图模板(DB.html):

    <body>
    <table width="80%" border="1" cellpadding="0" cellspacing="0">
    <tr>
    <th>序号</th>
    <th>姓名</th>
    <th>民族</th>
    <th>性别</th>
    </tr>
    <foreach name="info" item="v">
    <tr>
    <td align="center"><{$v.code}></td>
    <td align="center"><{$v.name}></td>
    <td align="center"><{$v.nation}></td>
    <td align="center"><{$v["sex"]?"男":"女"}></td>
    </tr>
    </foreach>
    </table>
    
    <if condition="$test lt 10">
    hello
    <else />
    lajikk
    </if>     
    </body>
  • 相关阅读:
    【NOIP】提高组2015 神奇的幻方
    【BZOJ】1087: [SCOI2005]互不侵犯King
    【NOIP】提高组2005 过河
    【NOIP】提高组2012 借教室
    【vijos】P1083 小白逛公园
    【vijos】P1659 河蟹王国
    【vijos】P1448 校门外的树
    【vijos】P1066 弱弱的战壕
    【TYVJ】P1039 忠诚2
    【TYVJ】P1038 忠诚
  • 原文地址:https://www.cnblogs.com/jinshui/p/5724811.html
Copyright © 2020-2023  润新知