PHP使用Yii框架实现增删改查小练习

 

PS:在签约项目的基础上完成

Yii框架:Yii框架为一个MVC框架,面向对象。

参考网站:https://www.yiichina.com/doc/guide/1.1/quickstart.installation

 

增删改查步骤:

1.在数据库中建立一个新的表:

 

2.在main.php中更改数据库代码:

 

3.定义AR类

ActiveRecord(活动记录)提供了面向对象接口,用以访问数据库中的数据。一个AR类关联一张数据表,通过操作实例化的AR类模型达到处理数据的目的。

在protected——models目录下,建立一个类,继承自CActiveRecord。

4.写Controller

在controllers目录下新建一个名为test的文件夹,在其中建一个名为TestController的控制器,里面写对应增删改查的方法。

 

5.增删改查方法

在以上目录下,创建一个名为test的文件夹,里面写好展示页面以及增、改、查对应页面。

 

一、查看全部信息

在list.html中写如下代码:

<table border="1" align="center" style="margin-top: 180px;">
    <thead> <tr>
        <th>序号</th>
        <th>姓名</th>
        <th>性别</th>
        <th>年龄</th> <th>操作</th> </tr>
    <tr>
    </thead> <tbody> <{foreach from=$list item=test}>
<td><{$test.id}></td>
<td><{$test.name}></td> <td><{$test.sex}></td> <td><{$test.age}></td> <td>
    <a href="<{$website}>/test/Test/getDeleteTest?id=<{$test.id}>">删除</a>
    <a href="<{$website}>/test/Test/getTestById?id=<{$test.id}>">查看详情</a> <a href="<{$website}>/test/Test/toUpdateTest?id=<{$Test.id}>">修改</a>
    <a href="<{$website}>/test/Test/toAddTest">添加</a>
</td> </tr> <{/foreach}> </tbody>
</table>

展示页面:

二、通过id查找信息

controller写法


public function  actiongetXiaoranById(){
        $id=$_GET['id'];
        $test=Test::model()->find('id=:id',array(':id'=>$id));
        $this->smarty->assign('test',$test);
        $this->smarty->display('test/concrete_content.html');
    }

HTML写法

<center>
    <h1 style="margin-top: 80px"><{$news.title}></h1>
    <table border="1" style="width: 1000px;margin-top: 10px;font-size:x-large">
        <tr>
            <td>人物</td>
            <td><{$test.name}></td>
        </tr>
        <tr>
            <td>内容</td>
            <td><{$test.message}></td>
        </tr>


    </table>
</center>

展示页面

三、删除

controller

 public function  actionGetDelete()
    {
        $id=$_GET['id'];
        $test=Test::model()->findByPk($id);
        $test->delete();
        $this->redirect(array(getTest));
    }

四、增加

1.controller跳转到增加页面

 public function actionToAdd(){
        $this->smarty->display('test/add.html');
    }

2.增加页面html

<form action="<{$website}>/test/xiaoran/add" method="post">
    <table style="margin-top: 10px;font-size: x-large" >
        <tr>
            <td>姓名:</td>
            <td><input type="text" name="name" style="width: 500px;height: 30px"></td>
        </tr>
        <tr>
            <td>年龄:</td>
            <td><input type="text" name="age" style="width: 500px;height: 30px"></td>
        </tr>
        <tr>
            <td>详情:</td>
            <td><textarea name="message" cols="30" rows="10" style="width: 500px;"></textarea></td>
        </tr>
        <tr>
            <td>性别:</td>
            <td><input type="text" name="sex" style="width: 500px;height: 30px"></td>
        </tr>
        <tr content="center">
            <td  colspan="2" style="text-align: center"><input type="submit" value="提交"></td>
        </tr>
    </table>
</form>

3.增加的controller

public function actionAdd(){
        $test=new Test();
        $name=$_POST['name'];
        $age=$_POST['age'];
        $message=$_POST['message'];
        $sex=$_POST['sex'];
        $test->name=$name;
        $test->age=$age;
        $test->message=$message;
        $test->sex=$sex;
        $test->save();
        $this->redirect(array(getXiaoran));

    }

展示页面:

五、修改

controller跳到修改页面

public function actionToUpdate(){
        $id=$_GET['id'];
        $test=Test::model()->find('id=:id',array(':id'=>$id));
        $this->smarty->assign('test',$test);
        $this->smarty->display('test/update.html');
    }

对应html页面:(注意做一个隐藏的input框存放id)

<form action="<{$website}>/test/xiaoran/getUpdate" method="post">
    <input name="id" value="<{$test.id}>" hidden>
    <table border="1" style="margin-top: 100px;margin-left: 100px">
        <tr>
            <td>姓名:</td>
            <td><input type="text" name="name" style="width: 500px;height: 30px"></td>
        </tr>
        <tr>
            <td>年龄:</td>
            <td><input type="text" name="age" style="width: 500px;height: 30px"></td>
        </tr>
        <tr>
            <td>详情:</td>
            <td><textarea name="message" cols="30" rows="10" style="width: 500px;"></textarea></td>
        </tr>
        <tr>
            <td>性别:</td>
            <td><input type="text" name="sex" style="width: 500px;height: 30px"></td>
        </tr>
        <tr content="center">
            <td  colspan="2" style="text-align: center"><input type="submit" value="提交"></td>
        </tr>
    </table>
</form>

修改controller:

public function actionGetUpdate(){
        $id=$_POST['id'];
        $test=Test::model()->find('id=:id',array(':id'=>$id));
        $test->name=$_POST['name'];
        $test->age=$_POST['age'];
        $test->message=$_POST['message'];
        $test->sex=$_POST['sex'];
        $test->save(); // 将更改保存到数据库
        $this->redirect(array(getXiaoran));
    }

展示页面: 

 

六、模糊查询

controller:

public function actionSer(){
        $par = $_POST['ser'];
        echo $par;

        $criteria = new CDbCriteria;

        $sql = "select *  
                 from t_test
                 where name like '%" . $par . "%'
            ";
        $selectList = Yii::app()->db->createCommand($sql)->queryAll();
        $this->smarty->assign('list',$selectList);
        $this->smarty->display('test/search.html');
    }

新增search页面:

<table border="1" align="center" style="margin-top: 180px;">
    <thead> <tr>
        <th>序号</th>
        <th>姓名</th>
        <th>性别</th>
        <th>年龄</th> <th>操作</th> </tr>
    <tr>
    </thead> <tbody> <{foreach from=$list item=test}>
<td><{$test.id}></td>
<td><{$test.name}></td> <td><{$test.sex}></td> <td><{$test.age}></td> <td>
    <a href="<{$website}>/test/XiaoRan/getDelete?id=<{$test.id}>">删除</a>
    <a href="<{$website}>/test/XiaoRan/getXiaoranById?id=<{$test.id}>">查看详情</a> <a href="<{$website}>/test/XiaoRan/toUpdate?id=<{$test.id}>">修改</a>
    <a href="<{$website}>/test/XiaoRan/toAdd">添加</a>
</td> </tr> <{/foreach}> </tbody>
</table>

注意还要在list主页中加两个框,对应search

 

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值