小言_互联网的博客

MySQL 之留言板的功能的实现

657人阅读  评论(0)

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']; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?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']; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo date('Y-m-d H:i:s', $row['addtime']); ?></td>
<td><?php echo $row['txtTitle']; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo date('Y-m-d H:i:s', $row['addtime']); ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<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']; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo date('Y-m-d H:i:s', $row['addtime']); ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<a href="edit.php?id=<?php echo $row['id'];?>">修改</a>]</td>

修改为

<td><?php echo $row['txtTitle']; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<?php echo date('Y-m-d H:i:s', $row['addtime']); ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<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
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场