作为网站管理员,应该有更多的权限,对留言的删除以及修改。首先创建一个修改的显示页面edit.php和一个修改的处理页面update.php,然后在后台首页admin.php中增加一个修改的功能
</pre><pre name="code" class="php">
echo "<tr><td>" . $row["id"] . "</td><td>" . $row["user_mes"] . "</td><td>" .
$row["user_name"] . "</td><td>" . $row["send_time"] . "</td><td><a id='update' href='edit.php?id=" . $row["id"] . "'>修改</a> <a id='del' href='delete.php
?id=" . $row["id"] ."'>删除</a></td>";
仍旧使用GET方法来传递id值
edit.php<?php
//数据库连接
require "conn.php";
//读取目标字段
if(isset($_GET["id"])){//判断id是否被获取
$id = $_GET["id"];
$sql = "select user_name, user_mes from message where id=".$id;
$result = $conn->query($sql);
if ($result === false) {
echo "对不起,留言记录不存在";
}else {
$row = $result->fetch_assoc();
}
} else {
echo "无法获取数据!";
}
?>
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<title>留言修改</title>
<link rel="stylesheet" href="style/style.css">
<!--[if lt IE 9]>
<script src="http://cdn.bootcss.com/html5shiv/r29/html5.js"></script>
<![endif]-->
</head>
<body>
<h2 class="edit-title">留言修改</h2>
<section class="mes-send mes-edit">
<form method="post" action="update.php">
<div class="form-group">
<label for="user_name">姓名:</label>
<input type="text" id="user_name" name="user_name" value="<?php echo $row['user_name']; ?>">
</div>
<div class="form-group">
<label for="user_mes">留言:</label>
<textarea id="user_mes" name="user_mes" rows="5"><?php echo $row["user_mes"]; ?></textarea>
</div>
<input type="hidden" name="user_id" value="<?php echo $id; ?>">
<input type="submit" id="btn" value="提 交">
</form>
<?php $conn->close(); ?>
</section>
</body>
</html>
isset()方法和empty()方法类似,可以看下这篇文章就明白两者的区别了,使用区别
哦,对了,我把$conn->query("set names utf8"); 放入到了数据库链接文件中conn.php,这样只需要导入该文件即可省略不用写了。
先根据获取的ID来读取需要修改的留言记录,并将得到的留言记录作为数组,然后在文本框中显示原值。我们可以根据需要修改留言内容以及用户昵称。并在表单中增加一个隐藏的input,这个是用来传递ID值用的
<input type="hidden" name="user_id" value="<?php echo $id; ?>">
update.php
<?php
header("Content-Type:text/html;charset=utf-8");
//数据库连接
require "conn.php";
//更新字段
if (isset($_POST["user_id"])){
$user_name = $_POST["user_name"];
$user_mes = $_POST["user_mes"];
$user_id = $_POST["user_id"];
$sql = "UPDATE message SET user_name = '$user_name', user_mes = '$user_mes' WHERE id=" . $user_id;
if ($conn->query($sql)) {
header("refresh:2;url=admin.php");
echo "更新成功,正在返回留言列表";
}else {
echo "更新失败";
}
$conn->close();
}else{
echo "无法获取数据!";
}
?>
起初,我的更新是失败的,后来发现,原来是UPDATE语句中字段赋值,少了单引号,造成了更新失败,如果是数字,单引号可以省略。更新的语句:
UPDATE 表名 SET 字段1=‘值1’,字段2=‘值2’,where 条件1='条件值'
edit.php页面的 CSS
/*修改页面*/
.edit-title {
padding:1em;
text-align: center;
}
.mes-edit {
margin: 0 auto;
width: 56.25em;
border: none;
text-align: center;
}