PHP编写留言板,增删改查及分页

基于think PHP6.0框架(控制器-模型-HTML),服务器:

文件目录如下:

 mysql 数据库表名为tb_msg,phpstrom中datebase.php文件连数据库:

控制器Lyb.php

<?php

namespace app\controller;

use app\BaseController;
use app\Model\Msg;
use think\facade\Db;
use think\facade\View;
use think\Request;


class Lyb extends BaseController
{
    protected $Msg;

    public function __construct(Msg $Msg)
    {
        $this->Msg = $Msg; // 将Msg模型实例赋值给属性
    }

    // 获取留言列表
    public function index()
    {
        $list = $this->Msg->getList();
        $count = $list->total();
        return view::fetch('index/msg_list', ['list' => $list, 'count' => $count]);
    }

    // 删除留言
    public function delete($mid)
    {

        // 调用模型删除数据
        $result = $this->Msg->deleteById($mid);
        if ($result) {

            return redirect('index/msg_list');
        } else {
            return '删除失败';
        }
    }

    // 添加留言
    public function add(Request $request)
    {
        if ($request->isPost()) {
            $data = [
                'uname' => $request->param('uname'),
                'content' => $request->param('content'),
                'pubTime' => date('Y-m-d H:i:s'),
            ];
            $result = $this->Msg->add($data);
            if ($result) {
                return redirect('index/msg_list');
            } else {
                return redirect('index/msg_add');
            }

        } else {
            return view('index/msg_add');
        }
    }

    // 编辑留言
    public function update(Request $request, $mid)
    {
        if ($request->isPost()) {
            // 接收数据
            $data = [
                'uname' => $request->param('uname'),
                'content' => $request->param('content'),
                'pubTime' => date('Y-m-d H:i:s'),
            ];
            // 调用模型更新数据
            $result = $this->Msg->updateById($mid, $data);
            if ($result) {
                // 更新成功
                return redirect('index/msg_list');
            } else {
                return redirect('index/msg_update');
            }
        } else {
            $msg = $this->Msg->getById($mid);
            if ($msg) {
                return view('index/msg_update', ['msg' => $msg]);
            } else {
                return '留言不存在';
            }
        }
    }

}

模型Msg.php

<?php

namespace app\Model;
use think\facade\Db;
use think\Model;

class Msg extends Model
{
    // 设置当前模型对应的数据表名
    protected $name = 'Msg';
    // 插入留言
    public function add($data)
    {
        $result = $this->insert($data);
        return $result ? $this->getLastInsID() : false;
    }
     //获取留言列表
    public function getList($limit = 3)
    {
        $list = Db::name('msg')
                  ->order('mid', 'asc')
                  ->paginate($limit); // 分页查询

        return $list;
    }

  //   获取留言
    public function getById($mid)
    {
        $msg = $this->where('mid', $mid)
                    ->find();
        return $msg;
    }
    // 更新留言
    public function updateById($mid, $data)
    {
        $result = $this->where('mid', $mid)
                       ->update($data);
        return $result;
    }
    // 删除留言
    public function deleteById($mid)
    {
        $result = $this->where('mid', $mid)->delete();
        //删除后,更新mid
        $messages = Db::name('msg')->select();
        $newMid = 1;
        foreach ($messages as $message) {
            // 更新mid
            Db::name('msg')->where('mid', $message['mid'])->update(['mid' => $newMid]);
            $newMid++;
        }
        // 提交事务
        Db::commit();
        return $result;
    }
}

添加页面msg_add.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>留言板</title>
</head>
<body>

<h1>添加留言</h1>
<!-- 留言提交表单 -->
<form action="/index.php/Lyb/add" method="post">
        姓名: <input type="text" name="uname" ><br><br>
        留言内容:<br><textarea name="content"
                         required style="width: 400px; height: 100px;" >
                    </textarea><br>
    <input type="submit" value="提交" onclick="return alert('添加成功(点击确定后返回留言列表)')"><br>

</form>

</body>
</html>

更新页面msg_update.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>update</title>
</head>
<body>

    <h2>编辑留言</h2>
    <form  action="/index.php/Lyb/update?mid=" method="post">
        <input type="hidden" name="mid" value="{$msg.mid}">
        <div>
            <label for="uname">用户名:</label><br>
            <input type="text" id="uname" name="uname" value="{$msg.uname}" required><br>
        </div>
        <div>
            <label for="content">内容:</label><br>
            <textarea id="content" name="content"
                      required style="width: 400px; height: 100px;" >{$msg.content}
            </textarea><br><br>
        </div>
        <div>
            <input type="submit" value="更新" onclick="return alert('添加成功(点击确定后返回留言列表)')"><br>
        </div>

    </form>

</body>
</html>

留言列表msg_list.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>留言列表</title>
</head>
<body>
<h2>留言列表</h2>

<table border="1">
    <tr>
        <th>ID</th>
        <th>用户名</th>
        <th>留言内容</th>
        <th>留言时间</th>
        <th>操作</th>
    </tr>
    {volist name="list" id="Msg"}
    <tr>
        <td>{$Msg.mid}</td>
        <td>{$Msg.uname}</td>
        <td>{$Msg.content}</td>
        <td>{$Msg.pubTime}</td>
        <td>
            <a href="/index.php/Lyb/update?mid={$Msg.mid}">更新留言</a>
            <a href="/index.php/Lyb/delete?mid={$Msg.mid}" onclick="return confirm('确定删除吗?')">删除留言</a>
        </td>
    </tr>
    {/volist}
</table>
<br><a href="/index.php/Lyb/add">添加留言</a>

<div class="pagination">{$list->render()|raw}</div>
<!-- 显示总记录数 -->
<p>总记录数:{$count}</p>

</body>
</html>

运行结果:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值