MySQL 之留言板的功能的实现
实验环境
- CentOS -LAMP 环境
- Chrome
- xshell
0x01 创建数据表
实现的功能:发布留言、显示留言列表、修改留言、删除留言
1.创建一个数据库
名为 fengzilin
MariaDB [(none)]> create database fengzilin;
2.选择数据库
MariaDB [(none)]> use fengzilin;
3.创建留言表
字段
创建一个数据表名为: guestbook
字段(Field) | 类型(Type) | 是否为空(NULL) | 主键(primary Key) | 默认值(Default) | 自动增长(auto_increment) |
---|---|---|---|---|---|
id | int(10) (整型) | NO | PRI | NULL | auto_increment |
txtTitle (留言标题) | varchar(100) (字符串) | yes | NULL | ||
txtContent (内容) | varchar(500) | yes | NULL | ||
addtime (留言时间) | int(10) | yes | 0 |
null|not null 是否为空
primary key 主键,主键的值不能重复,不能为空,每个表必须只能有一个主键
default: 默认值
auto_increment 自动增长,默认从1开始,每次递增1
语句:
create table guestbook(
id int(10) auto_increment primary key,
txtTitle varchar(100),
txtContent varchar(500),
addtime int(10)
default 0) DEFAULT CHARSET=utf8;
MariaDB [fengzilin]> desc guestbook;
0x02 创建留言页面
新建guestbook.php 文件
新建一个终端
[root@localhost ~]# vim guestbook.php
<html>
<head>
<meta charset="UTF-8">
<title>留言板</title>
</head>
<h2 align="center">留言板</h2>
<hr>
<font color="#6A6A6A">笔者:fengzilin</font>
<body>
<!-- 此部分是显示列表,用表格的形式体现出来,暂时用静态的文字占位,后面要从数据表里读出来-->
<table width="50%" align="center" border="1" style="margin-bottom: 15px;" rules="all">
<tr>
<td>标题</td>
</tr>
<tr>
<td>留言内容</td>
</tr>
</talbe>
<table width="50%" align="center" border="1" style="margin-bottom: 15px;" rules="all">
<tr>
<td>标题</td>
</tr>
<tr>
<td>留言内容</td>
</tr>
</talbe>
<table width="50%" align="center" border="1" style="margin-bottom: 15px;" rules="all">
<tr>
<td>标题</td>
</tr>
<tr>
<td>留言内容</td>
</tr>
</talbe>
<!--此部分是留表单,用于填写留言并进行提交的-->
<table width="50%" align="center" border="1" rules="all">
<form action="save_add.php" method="post">
<tr>
<td>标题</td>
<td><input type="text" name="txtTitle" value="" /></td>
</tr>
<td>留言内容</td>
<td><textarea name="txtContent" cols="100" rows="10"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="点击提交" /></td>
</tr>
</form>
</table>
</body>
</html>
效果图
访问 http://192.168.37.164/guestbook.php
0x03 留言功能实现
修改guestbook.php
[root@localhost ~]# vim guestbook.php
<form action="save_add.php" method="post"> //将留言提交到服务器的当前目录下save_add.php 将这个文件进行处理
新创建文件 save_add.php
[root@localhost ~]# vim save_add.php
连接数据库代码
<?php
$result = mysql_connect('localhost','root','123456');
if(!$result){
echo "数据库连接失败";
}
mysql_query("set names 'utf8'");
$select_db = mysql_select_db("fengzilin");
if (!$select_db) {
echo "不能连接到此数据库:\n" . mysql_error();
}
if(!empty($_POST['submit']) ){
$txtTitle = $_POST['txtTitle'];
$txtContent = $_POST['txtContent'];
$sql = "insert into guestbook(txtTitle,txtContent,addtime) values('".$txtTitle."','".$txtContent."',".time().")";
$result = mysql_query($sql);
if($result){
echo "<script>alert('留言成功!');location.href='guestbook.php';</script>";
}else{
echo "<script>alert('留言失败!请重试!');location.href='guestbook.php';</script>";
}
}
访问:http://192.168.37.164/guestbook.php
查询数据库
看到我们提交的内容,证明添加成功
MariaDB [fengzilin]> select * from guestbook;
0x04 显示留言功能
修改 guestbook.php 文件
[root@localhost html]# vim guestbook.php
在源码顶部添加
<?php
$result = mysql_connect('localhost', 'root', '123456');
if (!$result) {
echo "数据库连接失败";
}
mysql_query("set names 'utf8'");
$select_db = mysql_select_db("fengzilin");
if (!$select_db) {
echo "不能连接到此数据库:\n" . mysql_error();
}
?>
将 22-46 行代码替换
替换成如下代码
<?php
$sql = "select id,txtTitle,txtContent,addtime from guestbook order by addtime desc";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
?>
<table width="50%" align="center" border="1" style="margin-bottom:15px;" rules="all">
<tr>
<td><?php echo $row['txtTitle']; ?> <?php echo date('Y-m-d H:i:s', $row['addtime']); ?></td>
</tr>
<tr>
<td><?php echo $row['txtContent']; ?></td>
</tr>
</table>
<?php } ?>
访问 http://192.168.37.164/guestbook.php
0x05 修改留言
1.增加修改留言链接
修改 guestbook.php 文件
[root@localhost html]# vim guestbook.php
修改第31行
<td><?php echo $row['txtTitle']; ?> <?php echo date('Y-m-d H:i:s', $row['addtime']); ?></td>
<td><?php echo $row['txtTitle']; ?> <?php echo date('Y-m-d H:i:s', $row['addtime']); ?> [<a href="edit.php?id=<?php echo $row['id'];?>">修改</a>]</td>
说明:
edit.php?id=<?php echo $row['id'];?>
其中 edit.php 是修改留言的页面,id是要修改留言的ID,通过此 ID 可以在修改页面将要修改的留言数据显示出来,同时也作为留言修改保存的条件
2.创建留言修改页面
[root@localhost html]# vim edit.php
<html>
<head>
<meta charset="utf-8"/>
<title>留言板-修改留言</title>
</head>
<body>
<table width="50%" align="center" border="1" rules="all">
<form action="" method="POST">
<tr>
<td>标题</td>
<td><input type="text" name="txtTitle" value=""/></td>
</tr>
<tr>
<td>留言内容</td>
<td><textarea name="txtContent" cols="100" rows="6"></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="提交" /></td>
</tr>
</form>
</table>
</body>
</html>
点击 某条留言的 修改 链接,显示如下
修改 edit.php 设置留言修改处理程序
[root@localhost html]# vim edit.php
<form action="save_edit.php" method="POST">
action=“save_edit.php” 将留言提交到服务端当前目录下 save_edit.php 这个文件进行处理,文件名可以自己定义。
当我们点击某条留言的 修改 链接 看,首先让留言标题和内容显示在
这个表单中,修改后,点击提交,此条留言会被修改
在浏览器访问 http://192.168.37.164/guestbook.php
点击第一条留言的 修改,发现地址栏 URL 多了个参数 ?id=2,点击不同留言的修改链接,传递的 id值是不一样的,因为每条留言的 id 是唯一且不一样的,但是下面的表单没有显示出留言标题和内容。
我们需要修改下代码,当点击修改链接的时候,让留言显示在下面表单里
修改 edit.php
在头部插入以下代码
[root@localhost html]# vim edit.php
<?php
//插入数据库连接代码
$result = mysql_connect('localhost','root','123456');
if(!$result){
echo "数据库连接失败";
}
mysql_query("set names 'utf8'");
$select_db = mysql_select_db("fengzilin");
if (!$select_db) {
echo "不能连接到此数据库:\n" . mysql_error();
}
//插入 获取留言内容代码
$id = $_GET['id'];
$txtTitle = "";
$txtContent = "";
if(isset($id)){
$sql = "select * from guestbook where id=$id";
$result = mysql_query($sql);
$data = mysql_fetch_array($result);
if($data){
$txtTitle = $data['txtTitle'];
$txtContent = $data['txtContent'];
}
}
?>
添加显示内容部分
修改 32-43行代码为
<tr>
<td>标题</td>
<td><input type="text" name="txtTitle" value="<?php echo $txtTitle; ?>"/></td>
</tr>
<tr>
<td>留言内容</td>
<td><textarea name="txtContent" cols="100" rows="6"><?php echo $txtContent; ?></textarea></td>
</tr>
<tr>
<td><input type="hidden" name="id" value="<?php echo $id; ?>" /></td>
<td><input type="submit" name="submit" value="提交" /></td>
</tr>
说明:
<?php echo $txtTitle;?> //要显示的留言标题
<?php echo $txtContent; ?> //要显示的留言内容
<input type="hidden" name="id" value="<?php echo $id; ?>" /> //是一个隐藏域,在修改完留言,点击提交的时候,隐藏域中的 id 值会被提交到服务端,通过 id 作为条件可以实现对提交的留言内容进行保存,也就是实现修改 id 为隐藏域中的值的留言内容。
保存并退出,打开浏览器
内容已经显示在表单中。
当修改完留言,点击 提交 按钮的时候将留言保存到数据表中
3.新创建 文件 save_edit.php
<?php
//连接数据库代码
$result = mysql_connect('localhost','root','123456');
if(!$result){
echo "数据库连接失败";
}
mysql_query("set names 'utf8'");
$select_db = mysql_select_db("fengzilin");
if (!$select_db) {
echo "不能连接到此数据库:\n" . mysql_error();
}
//保存修改留言的代码
if(!empty($_POST['submit'])){
$txtTitle = $_POST['txtTitle'];
$txtContent=$_POST['txtContent'];
$id=$_POST['id'];
$sql = "update guestbook set txtTitle='".$txtTitle."',txtContent='".$txtContent."' where id=$id";
$result = mysql_query($sql);
if($result){
echo "<script>alert('留言修改成功!');location.href='guestbook.php';</script>";
}else{
echo "<script>alert('留言修改失败!请重试!');location.href='edit.php?id=$id;'</script>";
}
}
?>
保存并退出
访问 http://192.168.37.164/guestbook.php
修改内容
修改成功
0x06 删除留言
增加删除留言链接
修改 guestbook.php文件
修改 31行文件
[root@localhost html]# vim guestbook.php
<td><?php echo $row['txtTitle']; ?> <?php echo date('Y-m-d H:i:s', $row['addtime']); ?> [<a href="edit.php?id=<?php echo $row['id'];?>">修改</a>]</td>
修改为
<td><?php echo $row['txtTitle']; ?> <?php echo date('Y-m-d H:i:s', $row['addtime']); ?> [<a href="edit.php?id=<?php echo $row['id'];?>">修改</a>][<a href="javascript:if(confirm('是否确认删除')){location.href='del.php?id=<?php echo $row['id'];?>'}">删除</a>]</td>
说明
del.php? id=<?php echo $row['id'];?> //点击删除链接,跳转到 del.php 文件根据通过 GET 方式传递的参数 id 进行删除留言操作。 新创建文件 del.php
返回浏览器
新建 del.php 文件
[root@localhost html]# vim del.php
<?php
//连接数据库
$result = mysql_connect('localhost','root','123456');
if(!$result){
echo "数据库连接失败";
}
mysql_query("set names 'utf8'");
$select_db = mysql_select_db("fengzilin");
if (!$select_db) {
echo "不能连接到此数据库:\n" . mysql_error();
}
//加入处理删除留言的代码
$id=$_GET['id'];
if(isset($id)){
$sql = "delete from guestbook where id=$id";
$result = mysql_query($sql);
if($result){
echo "<script>alert('留言删除成功!');location.href='guestbook.php';</script>";
}else{
echo "<script>alert('留言删除失败!');location.href='guestbook.php';</script>";
}
}
?>
保存退出
浏览器访问 http://192.168.37.164/guestbook.php
二次确认删除
删除留言
留言没了
0x07 总结
本章学习了,留言板的基本功能,从创建、到更改、到删除、并且和数据库交互,实现了一个简单的web交互网站
转载:https://blog.csdn.net/fengzilin1973/article/details/116009548