MySQL 之留言板的功能的实现

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;

image-20210305091942256

2.选择数据库

MariaDB [(none)]> use fengzilin;

image-20210305092028442

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 之留言板的功能的实现_第1张图片

MariaDB [fengzilin]> desc guestbook;

MySQL 之留言板的功能的实现_第2张图片

0x02 创建留言页面

新建guestbook.php 文件

新建一个终端

[root@localhost ~]# vim guestbook.php


	
	留言板

留言板


笔者:fengzilin
标题
留言内容
标题
留言内容
标题
留言内容
标题
留言内容

效果图

访问 http://192.168.37.164/guestbook.php

MySQL 之留言板的功能的实现_第3张图片

0x03 留言功能实现

修改guestbook.php

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

MySQL 之留言板的功能的实现_第4张图片

新创建文件 save_add.php

[root@localhost ~]# vim save_add.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 "";
	}else{
		echo "";
	}
} 

访问:http://192.168.37.164/guestbook.php

MySQL 之留言板的功能的实现_第5张图片

MySQL 之留言板的功能的实现_第6张图片

查询数据库

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

MariaDB [fengzilin]> select * from guestbook;

MySQL 之留言板的功能的实现_第7张图片

0x04 显示留言功能

修改 guestbook.php 文件

[root@localhost html]# vim guestbook.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 之留言板的功能的实现_第8张图片

将 22-46 行代码替换

MySQL 之留言板的功能的实现_第9张图片

替换成如下代码

	
	$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> echo $row['txtTitle']; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo date('Y-m-d H:i:s', $row['addtime']); ?></td>
			</tr>
			<tr>
				<td> echo $row['txtContent']; ?></td>
			</tr>
		</table>
	 } ?>

访问 http://192.168.37.164/guestbook.php

MySQL 之留言板的功能的实现_第10张图片

0x05 修改留言

1.增加修改留言链接

修改 guestbook.php 文件

[root@localhost html]# vim guestbook.php

修改第31行

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

image-20210305155743999

说明:

edit.php?id= echo $row['id'];?>

其中 edit.php 是修改留言的页面,id是要修改留言的ID,通过此 ID 可以在修改页面将要修改的留言数据显示出来,同时也作为留言修改保存的条件

2.创建留言修改页面

[root@localhost html]# vim edit.php

	
		
		留言板-修改留言
	
	
		
标题
留言内容

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

MySQL 之留言板的功能的实现_第11张图片

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

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

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

MySQL 之留言板的功能的实现_第12张图片

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

MySQL 之留言板的功能的实现_第13张图片

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

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

MySQL 之留言板的功能的实现_第14张图片

点击第一条留言的 修改,发现地址栏 URL 多了个参数 ?id=2,点击不同留言的修改链接,传递的 id值是不一样的,因为每条留言的 id 是唯一且不一样的,但是下面的表单没有显示出留言标题和内容。

我们需要修改下代码,当点击修改链接的时候,让留言显示在下面表单里

修改 edit.php

在头部插入以下代码

[root@localhost html]# vim edit.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="$txtTitle; ?>"/></td>
				</tr>
				<tr>
					<td>留言内容</td>
					<td><textarea name="txtContent" cols="100" rows="6"> echo $txtContent; ?></textarea></td>
				</tr>
				<tr>
					<td><input type="hidden" name="id" value="$id; ?>" /></td>
					<td><input type="submit" name="submit" value="提交" /></td>
				</tr>

说明:

  //要显示的留言标题
 //要显示的留言内容
       //是一个隐藏域,在修改完留言,点击提交的时候,隐藏域中的 id 值会被提交到服务端,通过 id 作为条件可以实现对提交的留言内容进行保存,也就是实现修改 id 为隐藏域中的值的留言内容。 

MySQL 之留言板的功能的实现_第15张图片

保存并退出,打开浏览器

MySQL 之留言板的功能的实现_第16张图片

内容已经显示在表单中。

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

3.新创建 文件 save_edit.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 "";
	}else{
		echo "";
      	}
} 
?>

保存并退出

访问 http://192.168.37.164/guestbook.php

MySQL 之留言板的功能的实现_第17张图片

修改内容

MySQL 之留言板的功能的实现_第18张图片

MySQL 之留言板的功能的实现_第19张图片

修改成功

MySQL 之留言板的功能的实现_第20张图片

0x06 删除留言

增加删除留言链接

修改 guestbook.php文件

修改 31行文件

[root@localhost html]# vim guestbook.php
<td> echo $row['txtTitle']; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo date('Y-m-d H:i:s', $row['addtime']); ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<a href="edit.php?id=$row['id'];?>">修改</a>]</td>

修改为

<td> echo $row['txtTitle']; ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; echo date('Y-m-d H:i:s', $row['addtime']); ?>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[<a href="edit.php?id=$row['id'];?>">修改</a>][<a href="javascript:if(confirm('是否确认删除')){location.href='del.php?id=$row['id'];?>'}">删除</a>]</td>

image-20210305171517020

说明

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

返回浏览器

MySQL 之留言板的功能的实现_第21张图片

新建 del.php 文件

[root@localhost html]# vim del.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 "";
	}else{
	     echo "";
	}
} 
?>

保存退出

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

MySQL 之留言板的功能的实现_第22张图片

二次确认删除

MySQL 之留言板的功能的实现_第23张图片

删除留言

MySQL 之留言板的功能的实现_第24张图片

留言没了

MySQL 之留言板的功能的实现_第25张图片

0x07 总结

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

你可能感兴趣的:(编程语言,数据库,mysql)