PHP增删改查 Yii框架版

一、新建数据库
新建一个名为“db_person”的数据库,其中新建一个名为”t_person“的表
这里写图片描述

二、连接数据库
1.打开main.php
这里写图片描述
2.将本地数据库中的dbname改成自己的数据库名字,即”db_person”
这里写图片描述

三、定义AR类(创建model)
1.在models中新建PHP文件(person.php),继承CActiveRcord
这里写图片描述
2.主要写两个方法,只需将第二个方法(tableName())中的return 改为自己数据库中表的名字。

class person extends CActiveRecord{
    public static function model($className=__CLASS__){
        return parent::model($className);
    }

    public function tableName(){
        return 't_person';
    }
}

注:默认情况下,AR类的名字和数据表的名字相同。如果不同,请覆盖 tableName() 方法。

四、控制器(Controller)
在controllers文件夹下新建一个文件夹,命名为person。在person中新建一个名为 PersonController的controller,并继承Controller。
这里写图片描述

class PersonController extends Controller{

}

五、编写增删改查的方法
1.在templates下新建一个名为person的文件夹用来存放html文件
这里写图片描述
在该文件中写出自己需要的表单

2.遍历所有person
在controller中写查看全部新闻的方法。在controller中的方法名要加action,可以自动识别。

    /**
     * 遍历person
     */
    public function actionListPerson(){
        $list = person::model()->findAll();
        $list->smarty->assign('list',$list);
        $list->smarty->display('person/home.html');
    }

对应的html代码home.html

<body>
<a href="/dsjyw0725/person/person/ToAddPerson">增加</a>
<table>
    <thead>
    <tr><td>id</td><td>name</td><td>birthday</td><td>department</td><td>team</td></tr>
    </thead><tbody>
    <{foreach from=$list item=person}>
        <tr>
            <td><{$person.id}></td>
            <td><{$person.name}></td>
            <td><{$person.birthday}></td>
            <td><{$person.department}></td>
            <td><{$person.team}></td>
            <td><a href="/dsjyw0725/person/person/getPersonById?id=<{$person.id}>">查看详情</a></td>
            <td><a href="/dsjyw0725/person/person/delPerson?id=<{$person.id}>">删除</a></td>
            <td><a href="/dsjyw0725/person/person/ToUpdatePerson?id=<{$person.id}>">修改</a></td>
        </tr>
    <{/foreach}>
    <form action="/dsjyw0725/person/person/serPerson" method="post">
        <input type="text" name="ser" class="search_key" placeholder="搜索内容">
        <input type="submit" name="keyword" value="搜索" class="search_btn">
    </form>
</tbody>
</table>
</body>

运行结果
这里写图片描述

3.增加person
通过controller中的方法,跳转到增加新闻页面

    /**
     * 跳转到增加页面
     */
    public function actionToAddPerson(){
        $this->smarty->display('person/add_person.html');
    }

将添加的内容通过form表单,传给controller,增加新闻。

    /**
     * 增加person
     */
    public function actionAddPerson(){
       $person = new Person;
       $name = $_POST['name'];
       $birthday = $_POST['birthday'];
       $department = $_POST['department'];
       $team = $_POST['team'];
       $comment = $_POST['comment'];
       $person->name = $name;
       $person->birthday = $birthday;
       $person->department = $department;
       $person->team = $team;
       $person->comment =$comment;
       $person->save();
       $this->redirect(array(listPerson));
    }

对应的html代码

<body>

<form action="/dsjyw0725/person/person/addPerson"method="post">

    <table style="margin-top: 10px;font-size: x-large" >
        <tr>
            <td>name:</td>
            <td><input type="text" name="name" style="width: 500px;height: 30px"></td>
        </tr>
        <tr>
            <td>birthday:</td>
            <td><input type="text" name="birthday" style="width: 500px;height: 30px"></td>
        </tr>
        <tr>
            <td>department:</td>
            <td><input type="text" name="department" style="width: 500px;height: 30px"></td>
        </tr>
        <tr>
            <td>team:</td>
            <td><input type="text" name="team" 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>
</body>

运行结果
这里写图片描述
这里写图片描述
4.删除person
将对应新闻的id传到controller,删除对应的person,调用查看全部person方法,返回到展示person页面。

    /**
     * 删除person
     */
    public function actionDelPerson(){
        $id = $_GET['id'];
        $person = person::model()->findByPk($id);
        $person->delete();
        $this->redirect(array(listPerson));
    }

运行结果
这里写图片描述

5.修改person
将要修改的person的id传给controller,将id对应的person在页面呈现出来,进行修改。

    /**
     * 跳转到修改页面
     */
    public function actionToUpdatePerson(){
        $id = $_GET['id'];
        $person = person::model()->find('id=:id',array(':id'=>$id));
        $this->smarty->assign('person',$person);
        $this->smarty->display('person/update_person.html');
    }

将要修改的信息通过form表单,传给controller,修改person。

    /**
     * 修改person
     */
    public function actionUpdatePerson(){
        $id = $_GET['id'];
        $person =person::model()->find('id=:id',array(':id'=>$id));
        $person->name=$_POST['name'];
        $person->birthday=$_POST['birthday'];
        $person->department=$_POST['department'];
        $person->team=$_POST['team'];
        $person->comment=$_POST['comment'];
        $person->save();
        $this->redirect(array(listPerson));
    }

对应的html代码

<body>

<form action="/dsjyw0725/person/person/updatePerson" method="post">

    <table border="2" style="margin-top: 100px;margin-left: 100px">
        <tr >
            <input type="text" name="id" value="<{$person.id}>" hidden/>
        </tr>
        <tr>
            <td>name</td>
            <td>
                <textarea  type="text" name="name" style="width: 1000px"><{$person.name}></textarea>
            </td>
        </tr>
        <tr>
            <td>birthday</td>
            <td>
                <textarea  type="text" name="birthday" style="width: 1000px"><{$person.birthday}></textarea>
            </td>
        </tr>
        <tr>
            <td>department</td>
            <td>
                <textarea  type="text" name="department" style="width: 1000px"><{$person.department}></textarea>
            </td>
        </tr>
        <tr>
            <td>team</td>
            <td>
                <textarea  type="text" name="team" style="width: 1000px"><{$person.team}></textarea>
            </td>
        </tr>
        <tr>
            <td>comment</td>
            <td>
                <textarea  type="text" name="comment" style="width: 1000px"><{$person.comment}></textarea>
            </td>
        </tr>
        <tr content="center">
            <td  colspan="3" style="text-align: center"><input type="submit" value="确认修改"></td>
        </tr>
    </table>
</form>
</body>

运行结果
这里写图片描述
这里写图片描述
6.模糊查询

/**
     *模糊查询
     */
    public  function actionSerPerson(){

        $keyword=$_POST['keyword'];

        $sql = "select * from t_person
                where t_person.id like '%".$keyword."%'
                or t_person.name like '%".$keyword."%'
                or t_person.birthday like '%".$keyword."%'
                or t_person.department like '%".$keyword."%'
                or t_person.team like '%".$keyword."%'";
        $list = Yii::app()->db->createCommand($sql)->queryAll();

        $this->smarty->assign('list',$list);

        $this->smarty->display('person/ser_person.html');

    }

对应的html代码

<body>
<table border="3" >
    <thead> <tr> <th>name</th><th>birthday</th><th>department</th><th>team</th><th>comment</th></tr></thead>
    <tbody>
    <{foreach from=$list item=person}>
    <tr>
    <td><{$person.name}></td>
    <td><{$person.birthday}></td>
    <td><{$person.department}></td>
    <td><{$person.team}></td>
    <td><{$person.comment}></td>
    </tr>
    <{/foreach}><a href="listPerson">回到主页</a>
    </tbody>
</table>
</body>

运行结果
这里写图片描述
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值