Yii框架(PHP) + mysql增删改查(模糊查询)

步骤:

一、新建数据库

二、连接数据库

三、定义AR类(创建model)

四、控制器(controller)

五、写增删改查(模糊查询)方法

实现功能:

1、展示出全部信息

2、增加信息

3、删除信息

4、修改信息

5、查找信息(通过id)

6、模糊查询

一、新建数据库

库名:db_person 表名:t_person

二、连接数据库

打开工作室的框架目录,找到config的文件下的main.php文件

具体目录如图:

修改本地数据库名字,将数据库名跟用户名、密码该为自己数据库对应的。

//本地的数据库
        'db'=>array(
            'connectionString' => 'mysql:host=localhost;dbname=db_person', //mysql:host=125.222.222.73 本地数据库
            'emulatePrepare' => true,
            'username' => 'root',
            'password' => 'mysql',
            'charset' => 'utf8',
            'tablePrefix' =>'t_',
        ),

三、定义AR类(创建model)

要访问一个数据表,我们首先需要通过集成 CActiveRecord 定义一个 AR 类。每个 AR 类代表一个单独的数据表,一个 AR 实例则代表那个表中的一行。

在此目录下。新建PHP文件,继承CActiveRecord。

主要写两个方法,只需将第二个方法(tableName())中的return 该为自己数据库中表的名字。

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

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

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

引入的 表前缀功能 AR类的 tableName() 方法可以通过如下方式覆盖

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

即我们将返回通过双大括号括起来的没有前缀的表名,而不是完整的表的名字。

四、控制器(controller)

在controller文件夹下新建一个文件夹,命名为person。在person中新建一个名为 PersonController的controller,并继承Controller。

class PersonController extends Controller
{ ***********
}

五、写增删改查(模糊查询)方法

因为工作室项目的html文件都在这个目录下,因此我们在这个目录下,新建一个名为person的文件夹,我们的html文件就放在该文件夹下。

1、展示出全部信息

(1)person下新建html文件,名为list_person.html

(2)在controller中写查看全部person的方法。在controller中的方法名要加action,可以自动识别。

/**
     * 全部person
     */
    public function actionGetPerson(){
        //将t_person表中全部信息存到 $list中
        $list = person::model()->findAll();
        $this->smarty->assign('list',$list);
        //跳到对应的html页面,内容展示
        $this->smarty->display('person/list_person.html');
    }

对应list_person.html的代码

<form name="form" action="/dsjyw0725/person/Person/Select" method="post">
    <input type="text"style="width: 300px;height: 40px;border-radius:5px;border:1px;" name="key"
           placeholder="请输入您想查找的关键词"
           autocomplete="off">
    <input type="submit" value="搜索">
</form>
<table border="1" style="margin-top: 10px;font-size: x-large">
    <thead> <tr> <th>姓名</th>
        <th>年龄</th>
        <th>操作</th> <th></th> </tr>
    <tr>
    </thead> <tbody> <{foreach from=$list item=person}>
<td><{$person.name}></td>
<td><{$person.age}></td>  <td>
    <a href="/dsjyw0725/person/Person/toAddPerson">添加</a>
    <a href="/dsjyw0725/person/Person/getDeletePerson?id=<{$person.id}>">删除</a>

    <a href="/dsjyw0725/person/Person/toUpdatePerson?id=<{$person.id}>">修改</a>
    <a href="/dsjyw0725/person/Person/getPersonById?id=<{$person.id}>">查看详情</a>
</td> </tr> <{/foreach}> <tr> <td colspan="4" style="text-align: center" > </td> </tr> </tbody>
</table>

结果页面如下:

 2、增加信息

<a href="/dsjyw0725/person/Person/toAddPerson">添加</a>

通过controller中的方法,跳转到增加信息页面。

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

增加person的html

<form action="/dsjyw0725//person/Person/addPerson" method="post">
    <table border="1">
        <tr>
            <td> 姓名 </td>
            <td>
                <input type="text" name="name"/>
            </td>
        </tr>
        <tr>
            <td> 年龄 </td>
            <td>
                <input type="text" name="age"/>
            </td>
        </tr>
        <tr>
            <th align="center">
                <a href="/person/list"><input type="button" value="取消" ></a>
            </th>
            <th align="right">
                <input type="submit" name="submit" value="添加"/>
            </th>
        </tr>
    </table>
</form>

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

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

 结果页面如下:

3、删除信息

<a href="/dsjyw0725/person/Person/getDeletePerson?id=<{$person.id}>">删除</a>

将对应person的id传到controller,删除对应的person,调用查看全部person方法,返回到展示person页面。

    /**
     * 删除person
     */
    public function  actionGetDeletePerson()
    {
        $id=$_GET['id'];
        $person=person::model()->findByPk($id);
        $person->delete();                    // 从数据表中删除此行
        $this->redirect(array(getPerson));
    }

4、修改信息

<a href="/dsjyw0725/person/Person/toUpdatePerson?id=<{$person.id}>">修改</a>

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

    /**
     * 跳转到更新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');
    }

修改person的html:

<form action="/dsjyw0725/person/Person/getUpdatePerson" method="post">
    <table border="1" style="margin-top: 100px;margin-left: 100px">
        <tr >
            <input type="text" name="id" value="<{$person.id}>" hidden/>
        </tr>
        <tr>
            <td>姓名</td>
            <td>
                <textarea  type="text" name="name" style="width: 100px"><{$person.name}></textarea>
            </td>
        </tr>
        <tr>
            <td>年龄</td>
            <td>
                <textarea  type="text" name="age" style="width: 100px"><{$person.age}></textarea>
            </td>
        </tr>
        <tr>
            <input type="submit" name="submit" value="修改"/>
        </tr>
    </table>
</form>

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

    /**
     * 修改person
     */
    public function actionGetUpdatePerson(){
        $id=$_POST['id'];
        $person=Person::model()->find('id=:id',array(':id'=>$id));
        $person->name=$_POST['name'];
        $person->age=$_POST['age'];
        $person->save(); // 将更改保存到数据库
        $this->redirect(array(getPerson));
    }

结果页面如下:

 5、查找信息(通过id)

<a href="/dsjyw0725/person/Person/getPersonById?id=<{$person.id}>">查看详情</a>

 对应controlle中的方法:

/**
     * 通过id查找person
     */
    public function  actionGetPersonById(){
        $id=$_GET['id'];
        $person=person::model()->find('id=:id',array(':id'=>$id));
        $this->smarty->assign('person',$person);
        $this->smarty->display('person/concrete_content.html');
    }

将person的详细信息,在concrete_content.html中进行展示:

<center>
    <table border="1" style="width: 1000px;margin-top: 10px;font-size:x-large">
        <tr>
            <td>姓名</td>
            <td><{$person.name}></td>
        </tr>
        <tr>
            <td>年龄</td>
            <td><{$person.age}></td>
        </tr>
    </table>
</center>

结果页面如下:

6、模糊查询

<form name="form" action="/dsjyw0725/person/Person/Select" method="post">
    <input type="text"style="width: 300px;height: 40px;border-radius:5px;border:1px;" name="key"
           placeholder="请输入您想查找的关键词"
           autocomplete="off">
    <input type="submit" value="搜索">
</form>

对应controller:

public function actionSelect(){
        $key=$_POST['key'];
//        var_dump($key);
        $sql = "select *  
                 from t_person
                 where t_person.name like '%" . $key . "%'
            ";
        $selectList = Yii::app()->db->createCommand($sql)->queryAll();

//       var_dump($selectList);
        $this->smarty->assign('selectList',$selectList);
        $this->smarty->display('person/select.html');
    }

模糊查询的html:

<form name="form" action="/dsjyw0725/person/Person/Select" method="post">
    <input type="text"style="width: 300px;height: 40px;border-radius:5px;border:1px;" name="key" placeholder="请输入您想查找的姓名" autocomplete="off">
    <input type="submit" value="搜索">
</form>
<table border="1" style="margin-top: 10px;font-size: x-large">
    <thead> <tr> <th>姓名</th>
        <th>编号</th>
        <th>性别</th> <th></th> </tr>
    <tr>
    </thead> <tbody> <{foreach from=$selectList item=person}>
<td><{$person.name}></td>
<td><{$person.age}></td>  <td>
    <a href="/dsjyw0725/person/Person/getDeletePerson?id=<{$person.id}>">删除</a>
    <a href="/dsjyw0725/person/Person/getPersonById?id=<{$person.id}>">查看详情</a>
    <a href="/dsjyw0725/person/Person/toUpdatePerson?id=<{$person.id}>">修改</a>
    <a href="/dsjyw0725/person/Person/toAddPerson">添加</a>
</td> </tr> <{/foreach}> <tr> <td colspan="4" style="text-align: center" > </td> </tr> </tbody>
</table>

 结果页面如下:

猜你喜欢

转载自blog.csdn.net/liangllhahaha/article/details/81349492
今日推荐