TP之Model(select(),add())

Posted MrY的nn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TP之Model(select(),add())相关的知识,希望对你有一定的参考价值。

今天老师讲了MVC中最后一项Model,虽然老师讲解的过程中有点绕但是听了之后最大的感触是原来还可以这样去查询、添加

操作之前要把配置写好,从父类中找到关于数据库的配置,复制到自己的配置文件中修改

 

    function showall()
    {
        //Model:数据库中每一张表对应一个模型
        //类名是表名:类里面的成员变量是列名
        //把一张表对应一个类,其中一条数据对应一个对象
        
        //如果我们对该表的模型没有特殊操作可以不用建立该模型(在Model里面建文件)
        
        //实例化Model类
        //$info=new \\Home\\Model\\InfoModel(); //找具体的类名,必须建模型文件才能建对象
        //var_dump($info);
        
        //$info=D("Info");//快函数D方法创建子类对象
        //var_dump($info);
        
        $info=M("Info");//快函数M方法创建的为父类对象
        $car=M("Car");
        //var_dump($info);
        
        //var_dump($info->select());//返回的数据为二维数组
        
        //$attr=$info->where("code=\'p001\'")->select();//添加查询条件,select返回的是二维数组不是对象,所以select()放在连贯操作最后
        //var_dump($attr);
        
        //$attr=$info->table("nation")->select();//table可以切换操作表
        //var_dump($attr);
        
        //$attr=$info->field("code,name")->select();//指定查询的字段
        //var_dump($attr);
        
        //$attr=$info->order("code desc,birthday")->select();//排序,默认asc
        //var_dump($attr);
        
        //$attr=$info->limit(2)->select();//进行分页查询,如果只有一个参数n指取前n个,两个参数则是跳过几个取几个
        //var_dump($attr);
        
        //$attr=$info->page(2,2)->select();//分页,取第n页的几条数据
        //var_dump($attr);
        
        //$attr=$car->field("brand,count(*)")->group("brand")->select();//分组
        //var_dump($attr);
        
        //join连接两张或几张表        
        //$attr=$car->join("brand on car.Brand=brand.Brand_Code")->select();
        //var_dump($attr);
        
        //distict去重
        //$attr=$car->distinct(true)->field("Brand")->select();
        //var_dump($attr);
        
        //find 根据主键取一条数据返回一维数组,只能取一个,不写主键值默认返回第一条数据
         //$attr=$car->find("c003");
         //var_dump($attr);
        //select 根据主键值查询返回二维数组,可以取多个
          //$attr=$car->select("c001,c003,c004");
          //var_dump($attr);
           
           $attr=$car->sum("Price");//聚合函数
           echo $attr;
        
         //$attr=$car->select();
         //var_dump($attr);
         //$this->assign("car",$attr);
         //$this->display();
         
    }
    
    function add()
    {
        if(empty($_POST))
        {   
        
            $nation=M("Nation");
            $attr=$nation->select();
                    
            $this->assign("nation",$attr);
        
            $this->display();
        }
        else
        {
        $model=M("Info");
        /*添加数据的第一种方式,用数组添加
        $attr=array(   //添加数组,必须是关联数组,key必须是字段名
        \'Code\'=>\'P110\',
        \'Name\'=>\'liyun\',
        \'Sex\'=>true,
        \'Nation\'=>\'n002\',
        \'Birthday\'=>\'2000-7-9\',
        );
        $model->add($attr);//添加数据的方法,需要参数,是一个关联数组*/
        
        /*$attr["Code"]="p007";
        $attr["Name"]="bb";        
        $attr["Sex"]=true;
        $attr["Nation"]="n005";
        $attr["Birthday"]="2000-5-6";
        
        $model->add($attr);*/
        //添加第二种方式 AR方式
        //1.连接类 2.实体类 3.数据访问类
        /*$model->Code="p112";
        $model->Name="HUIJU";
        $model->Sex=true;
        $model->Nation="n004";
        $model->Birthday="2000-3-5";
        
        $model->add();*/
        
        //第三种方式:自动收集表单 //这个一定要会用
        $model->create();//自动收集表单并且创建数据
        $model->Sex=$_POST["Sex"]=="男"?true:false;
        
        $r=$model->add();
        var_dump($r);
            if($r)
            {
                $this->success("添加数据成功","add",3);
            }
            else
            {
                $this->error("添加失败","add",3);
            }
            
        }
        
    }
    function addcar()
    { 
        if(empty($_POST))
        {   
            $brand=M("brand");
            $attr=$brand->select();
            
            $this->assign("brand",$attr);
            
            $this->display();
        }
        else
        { 
            $model=M("car");
            $model->create();
            $r=$model->add();
            if($r)
            {
                $this->success("添加数据成功","addcar",3);
            }
            else
            {
                $this->error("添加失败","addcar",3);
            }
            
        }        
    }

自己加了点样式完善了一下下午老师讲的添加

以上是关于TP之Model(select(),add())的主要内容,如果未能解决你的问题,请参考以下文章

tp框架之Model类与命名空间

tp框架之Model类与命名空间

tp3.2 URL_MODEL为2 配置

tp5将查询数据返回为对象转为数组

php手记之04-tp5数据库操作

TP5中文件的写入路径有的会被自动重定向到首页