6月16日 TP框架数据库的查询及添加

时间:2022-10-17 00:30:08

MainController.class.php:

function ShowAll()
{
//model:数据库中每张表对应一个模型
//类名是表名,类里面的成员变量是列名
//把一张表对应为一个类,其中一条数据对应一个对象

//如果我们对该表的模型没有特殊操作,可以不用建立该模型

//查询Info表
//1.实例化Model

/*$info = new \Home\Model\InfoModel;
var_dump($info);
*/

//2.D方法
/*$info = D("Info");
var_dump($info);
*/

//3.M方法,父类对象,传参数
$car = M("Car");
//var_dump($info);

//var_dump($car->select());//返回所有数据的二维数组

//$attr = $car->where("brand='b003'")->select();

//$attr = $car->table("Nation")->select();//table方法可以切换操作表

//$attr = $car->field("Name")->select();//field可指定查询的字段

//$attr = $car->order("oil desc")->select();//排序

//$attr = $car->limit(2,2)->select();//分页查询,如果一个参数n的话就是取n个
//$attr = $car->page(3,2)->select();//取第n页的几个数据

//$attr = $car->field("Brand,count(*)")->group("brand")->select();//分组

//$attr = $car->join("Brand on Car.Brand=Brand.Brand_Code")->select();//join on 将两个表联合起来

//$attr = $car->distinct(true)->field("oil")->select();//去重,true实现去重,false失效

//$attr = $car->find("c001");//根据主键取一条数据,不写主键值默认返回第一条
//$attr = $car->select("c001");//根据主键值查询,返回二维数组,可以查询多条

/*$attr = $car->select();
$this->assign("shuzu",$attr);
$this->display();
*/
$attr = $car->count();//聚合函数,放在最后 max,最大值;avg,sum,min
echo attr;

}



//数据添加
function Add()
{
if(empty($_POST))
{
$this->display();
}
else
{

//1.要添加的数组,必须是关联数组,key必须是字段名称
$model = D("Info");
/*$attr = array(
'Code'=>'p007',
'Name'=>'李丽',
'Sex'=>true,
'Nation'=>'n002',
'Birthday'=>'1993-5-8'
);
*/

//赋值
/*$attr["Code"] = "p006";
$attr["Name"] = "皎皎";
$attr["Sex"] = false;
$attr["Nation"] = "p001";
$attr["Birthday"] = "1992-4-3";
*/

//$model->add($attr);//添加数据的方法,需要参数,该参数是一个数组

//2.AR方式
//1.连接类 2.实体类 3.数据访问类

/*$model->Code = "p005";
$model->Name = "芳华";
$model->Sex = true;
$model->Nation = "n003";
$model->Birthday = "1995-3-4";

$model->add();
*/


//3.自动收集表单,创建数据
$model->create();
$model->Sex = $_POST["Sex"]=="男"?true:false;
$z = $model->add();
if($z)
{
$this->succss("添加数据成功","Add",5);//提示添加数据成功,5秒后跳转Add页面
}
else
{
$this->error("添加失败","Add",3);
}


}



}

InfoModel.class.php:

<?php
namespace Home\Model;
use Think\Model;
class InfoModel extends Model
{
}

ShowAll.html:

<body>
<h1>汽车表</h1>
<table width="100%" cellpadding="0" cellspacing="0" border="1">
<tr>
<td>代号</td>
<td>名称</td>
<td>系列</td>
<td>上市时间</td>
<td>油耗</td>
<td>功率</td>
</tr>
<foreach name="shuzu" item="v">
<tr>
<td><{$v.code}></td>
<td><{$v.name}></td>
<td><{$v.brand}></td>
<td><{$v.time}></td>
<td><{$v.oil}></td>
<td><{$v.puwer}></td>
</tr>
</foreach>
</table>
</body>

 

Add.html:

<body>
<form action="__ACTION__" method="post">
<div>代号:<input type="text" name="Code" /></div>
<div>姓名:<input type="text" name="Name" /></div>
<div>性别:<input type="text" name="Sex" /></div>
<div>民族:<input type="text" name="Nation" /></div>
<div>生日:<input type="text" name="Birthday" /></div>
<input type="submit" value="提交" />
</form>
</body>