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);
            }

        }
    }

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

时间: 2024-10-29 19:10:31

TP之Model(select(),add())的相关文章

Django model :add a non-nullable field 'SKU' to product without a default; we can't do that

You are trying to add a non-nullable field 'SKU' to product without a default; we can't do that (the database needs something to populate existing rows). Please select a fix: 1) Provide a one-off default now (will be set on all existing rows) 2) Quit

tp框架-----Model模型层

1.Model模型层是用来做什么的呢? 主要是用来做操作数据库访问的.也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. 2.Model模型怎样使用呢? 要使用Model模型层访问数据库的话,需要做配置,因为必须把数据库的一些参数配置好之后,才能连接,所以找到Config.php.    如何修改配置呢? 1)打开下图路径中的Convention.php文件 2)复制convention.php中的下图内容到Home/Conf/config.php中 3)修改配置,将自己的数据

TP框架---Model模型层---做模型对象

TP框架----Model模型层---------------做模型对象 Model模型层是用来做什么的呢???? 主要是用来做操作数据库访问的. 也就说明TP框架自带了一种访问数据库的方式,使用的是Model模型. Model模型怎样使用呢??? 要使用Model模型层访问数据库的话,需要做配置,因为必须把数据库的一些参数配置好之后,才能连接,所以找到Config.php 配置文件,打开 这些是关于数据库的配置, 要把这些粘贴到config.php 进行修改. config.php配置文件(修

Django model select的各种用法详解

<Django model update的各种用法介绍>文章介绍了Django model的各种update操作,这篇文章就是她的姊妹篇,详细介绍Django model select的用法,配以对应MySQL的查询语句,理解起来更轻松. 基本操作 # 获取所有数据,对应SQL:select * from User User.objects.all() # 匹配,对应SQL:select * from User where name = '运维咖啡吧' User.objects.filter(

Select,Add,Update,Delete

//查询 public static DataSet select(string tableName,string whereStr) { string sql = "select * from "+tableName+whereStr; try { return DbHelp.ExecSql(sql); } catch (Exception e1) { return null; } } //删除单条 public static int delete (string tableName

TP框架 MODEL类和命名空间

1.获取系统常量信息 public function shuchu() { var_dump(get_defined_constants()); }2.跨控制器或跨模块调用 function diaoyong() { //跨控制器或跨模块调用用方法 //1.造对象调用 /*$sc=new IndexController(); $sc->index();*/ //2.使用TP框架的快捷方法A来创建控制器对象 //$sc=A("Admin/Main"); //前面的Admin是文件夹

在ASP.NET MVC中使用Knockout实践02,组合View Model成员、Select绑定、通过构造器创建View Model,扩展View Model方法

本篇体验使用ko.computed(fn)计算.组合View Model成员.Select元素的绑定.使用构造器创建View Model.通过View Model的原型(Prototype)为View Model添加扩展方法. □ 使用ko.computed(fn)计算成员 有时候,我们希望把View Model中的几个成员组合起来成为一个新成员,使用ko.computed(fn)可实现. 接着上一篇,为productViewModel这个json对象增加一个计算成员. <div data-bi

select 下拉菜单Option对象使用add(elements,index)方法动态添加

原生js 的add函数为下拉菜单增加选项 1.object.add(oElement [, iIndex]) index 可选参数:指定元素放置所在的索引号,整形值.如果没有指定值,将添加到集合的最后. 想加到最前面,指定索引值0就可以了. @@注意: add方法为js原生方法,属于element元素对象,在使用jquery对象获取元素时是不可用的 var select = $('#select'); select.add(new Option(txt,val)) 提示:undefined ad

TP框架---thinkphp基础知识

php框架    发瑞 一.真实项目开发步骤: 多人同时开发项目,协作开发项目.分工合理.效率有提高(代码风格不一样.分工不好) 测试阶段 上线运行 对项目进行维护.修改.升级(单个人维护项目,十分困难,代码风格不一样) 项目稳定的运行阶段 项目停止运行(旧项目的人员已经全部离职,新人开发新项目)   二.问题: 1. 多人开发项目,分工不合理,(html   php   mysql) 2. 代码风格不一样,后期维护十分困难 3. 项目生命周期十分短,项目生命没有延续性,造成资源浪费.人员浪费