MySQL 之留言板的功能的实现


文章目录

  • MySQL 之留言板的功能的实现
  • 0x01 创建数据表
  • 1.创建一个数据库
  • 2.选择数据库
  • 3.创建留言表
  • 0x02 创建留言页面
  • 0x03 留言功能实现
  • 0x04 显示留言功能
  • 0x05 修改留言
  • 1.增加修改留言链接
  • 2.创建留言修改页面
  • 3.新创建 文件 save_edit.php
  • 0x06 删除留言
  • 0x07 总结



实验环境

  • CentOS -LAMP 环境
  • Chrome
  • xshell

0x01 创建数据表

实现的功能:发布留言、显示留言列表、修改留言、删除留言

1.创建一个数据库

名为 fengzilin

MariaDB [(none)]> create database fengzilin;

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_html

2.选择数据库

MariaDB [(none)]> use fengzilin;

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_mysql_02

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;

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_php_03

MariaDB [fengzilin]> desc guestbook;

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_mysql_04

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

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_mysql_05

0x03 留言功能实现

修改guestbook.php

[root@localhost ~]# vim guestbook.php
<form action="save_add.php" method="post">   //将留言提交到服务器的当前目录下save_add.php 将这个文件进行处理

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_php_06

新创建文件 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

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_php_07

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_mysql_08

查询数据库

看到我们提交的内容,证明添加成功

MariaDB [fengzilin]> select * from guestbook;

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_html_09

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();
}
?>

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_php_10

将 22-46 行代码替换

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_html_11

替换成如下代码

<?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

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_html_12

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>

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_mysql_13

说明:

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>

点击 某条留言的 修改 链接,显示如下

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_数据库_14

修改 edit.php 设置留言修改处理程序

[root@localhost html]# vim edit.php
<form action="save_edit.php" method="POST">

action=“save_edit.php” 将留言提交到服务端当前目录下 save_edit.php 这个文件进行处理,文件名可以自己定义。

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_mysql_15

当我们点击某条留言的 修改 链接 看,首先让留言标题和内容显示在

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_html_16

这个表单中,修改后,点击提交,此条留言会被修改

在浏览器访问 http://192.168.37.164/guestbook.php

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_php_17

点击第一条留言的 修改,发现地址栏 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 为隐藏域中的值的留言内容。

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_数据库_18

保存并退出,打开浏览器

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_mysql_19

内容已经显示在表单中。

当修改完留言,点击 提交 按钮的时候将留言保存到数据表中

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

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_数据库_20

修改内容

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_html_21

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_html_22

修改成功

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_mysql_23

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>

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_html_24

说明

del.php? id=<?php echo $row['id'];?>  //点击删除链接,跳转到 del.php 文件根据通过 GET 方式传递的参数 id 进行删除留言操作。 新创建文件 del.php

返回浏览器

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_html_25

新建 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

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_html_26

二次确认删除

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_数据库_27

删除留言

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_数据库_28

留言没了

mysql设计评论表需要存用户头像信息吗 mysql设计留言表_html_29

0x07 总结

本章学习了,留言板的基本功能,从创建、到更改、到删除、并且和数据库交互,实现了一个简单的web交互网站