参考B站视频:PHP MySQL 留言板项目 增删改查 - 1901

PHP基础项目——留言板

项目说明:非前后端分离,用PHP和HTML混编代码编写!

花费时间:预计时间一小时完成

收获成果:使用PHP实现数据库增删查改,动态更新页面内容!

步骤分析

  • 第一步:在数据库中,创建留言板数据库,创建留言板数据表,表里面有4个结构!用来记录留言信息,自增ID、姓名、时间、文本信息
  • 第二步:新建首页文件index.php,写上HTML结构,创建form表单,文本框、输入框、提交按钮!
  • 第三步:新建配置文件config.php,并存放公共的标题、说明简介等,
  • 第四步:新建连接数据库文件conn.php,因为每个文件都要连接数据库,直接把这段公共代码提取出来,等下在其它文件中引入这个文件!
  • 第五步:在连接数据库文件中,编写代码:连接Mysql数据库、执行SQL语句,关闭Mysql连接!
  • 第六步:配置文件中,引入连接数据库,并配置页面全局标题!
  • 第七步:首页文件中,引入配置文件
  • 第八步:新建添加留言文件add.php,引入配置文件,获取表单提交的GET请求,保存在变量中,设置SQL插入语句,把这些变量,对象插入到数据库中,执行插入语句,返回首页!
  • 第九步:在首页文件中,添加留言列表,设置SQL查询语句,执行查询语句,根据返回数据判断是否存在留言,如果有就显示出来
  • 第十步:留言列表最后,添加编辑和删除链接,传入当前的id
  • 第十一步:新建编辑文件edit.php,引入配置文件,接收GET请求,根据id查询数据库,把查询到的文本数据给变量,添加文本框和提交按钮,把变量内容显示在文本框中,点击提交按钮,把id和文本信息传到更新文件。
  • 第十二:新建更新文件updata.php,引入配置文件,接收GET请求,根据id查询留言信息,并把文本信息,再插入到数据库,跳转回首页
  • 第十三:新建删除文件del.php,引入配置文件,接收GET请求,根据id查询留言信息,删除留言,跳转回首页

网络通信步骤——HTML和PHP混编的动态网页!

img

  1. 浏览器访问链接后,根据请求地址,找到服务器index.php首页文件,因为是PHP文件,服务器端去解析PHP生成HTML文件,在解析执行文件时,获取配置文件config.php信息,连接数据库文件conn.php,获取留言板等信息生成到页面中,最后会生成一个HTML文件,返回给客户端的浏览器中,浏览器再解析成网页!
  2. 在首页中,有一个form表单,一个提交按钮,还有很多留言信息!form表单是用HTML代码编写,整个网页结构也是用HTML编写,其中显示的留言信息是通过PHP代码从数据库中获取!
  3. 在首页中留言板输入信息,点击提交按钮,首页文件会跳转到其它PHP文件,服务器端的PHP解析器,会把这些涉及PHP的命令执行,然后再重复步骤1,PHP转化为HTML文件,传给浏览器!
  4. 填写form表单,点击提交按钮,页面会提交GET请求,并跳转到add.php文件,add.php文件连接数据库,获取GET请求中的信息,并向数据库插入这些信息!然后再跳转回到首页!
  5. 首页中的留言显示,根据id反向排列显示,也就是显示最新留言!

具体文件编写

1、首页文件:index.php

在首页有串php代码,代码内引入一个PHP文件,叫做config.php,也就是配置文件,然后在HTML结构中,添加form表单!

<form action="add.php" method="GET">
<textarea name="t" cols="30" rows="10" placeholder="说点什么..."></textarea>
<p><input name="n" type="text" placeholder="你的名字"></p>
<p><input name="q" type="text" placeholder="你的QQ"></p>
<p><input type="submit" value="发表"></p>
</form>
2、配置文件config.php

这个配置文件文件里,又引入一个PHP文件,叫conn.php,作用是连接数据库

<?php
//这个是配置文件

//链接数据库
require_once 'conn.php';

//全站标题
$title = "我的留言板";
3、数据库的文件conn.php
<?php
// 连接数据库(地址,用户名,密码,数据库名)
$host = 'localhost';
$user = 'root';
$password = '123456';
$dbname = 'liuyanban';
// 创建链接
$conn = new mysqli($host,$user,$password,$dbname);
// 检测链接
if($conn->connect_error){
die("连接失败:".$conn->connect_error);
}
?>
4、添加留言文件add.php——对应SQL语句增
$t = $_GET["t"];
$n = $_GET["n"];
$q = $_GET["q"];
$time = date("Y-m-d H:i:s",time());

//插入语句
$sql = "INSERT INTO `liuyan` (`id`, `name`,`qq`, `text`, `time`) VALUES (NULL, '$n','$q', '$t', '$time');";
//执行sql的添加代码
$conn->query($sql);
5、首页文件显示留言——对应SQL语句查
<?php
// 最新留言展示前面
$sql = "SELECT * FROM `liuyan` ORDER BY `liuyan`.`id` DESC";
// ORDER BY `liuyan`.`id` DESC 加上这个是降序排列
$result = $conn->query($sql);

if($result->num_rows>0){
//输出数据
while($row = $result->fetch_assoc()){
// $result->fetch_assoc()执行一次显示第一条,执行第二次显示第二条
?>
<li>
<p><?php echo $row["id"];?>楼</p>
<p>留言内容:<?php echo $row["text"];?></p>
<p>留言人:<?php echo $row["name"];?></p>
<img src="http://q2.qlogo.cn/headimg_dl?dst_uin=<?php echo $row["qq"];?>&spec=40" alt="QQ头像">
<p>留言时间:<?php echo $row["time"];?></p>
<p>
<a href="edit.php?id=<?php echo $row['id'];?>">编辑</a>
<a href="del.php?id=<?php echo $row['id'];?>">删除</a>
</p>
</li>
<?php
}
} else {
echo"暂无留言";
}
?>
6、删除留言——对应SQL语句删
//这边php文件通过GET接受传过来的id
$id = $_GET['id'];

//sql的删除代码
$sql = "DELETE FROM `liuyan` WHERE `liuyan`.`id` = $id";
//执行sql的删除代码
$conn->query($sql);
7、更新留言——对应SQL语句改
//这边php文件通过GET接受传过来的id和文本2个值
$id = $_GET['i'];
$t = $_GET['t'];

var_dump($id);
var_dump($t);


//sql的更新代码
$sql = "UPDATE `liuyan` SET `text` = '$t' WHERE `liuyan`.`id` = $id;";
// $sql = "UPDATE `liuyan` SET `text` = '得加单引号' WHERE `liuyan`.`id` = 15;";
//执行sql的更新代码
$conn->query($sql);

网页效果展示

image-20230506133716317


后续拓展

image-20230506154825877