近期搞微信小程序,云开发数据居然收费了,无奈只能自搞PHP后台,只能一步步学习PHP操作SQL数据库。以下内容主要参考自 PHP+Mysql 实现数据库增删改查(原生),但是原文的SQL函数太老,已经不被PHP7.0以上版本支持,所以更新了SQL相关函数,如:mysql_select_db(数据库名)改为mysqli_select_db($conneciton, 数据库名 ),mysql_query(sql语句)改为mysqli_query($connection, sql语句),mysql_num_rows($result) 改为 mysqli_num_rows($result) 等等
1.创建Mysql数据库
创建一个新闻列表的数据库:(具体数据库环境的安装,PHP环境的安装,需另外找教程学习。如小皮面板(phpstudy) - 让天下没有难配的服务器环境! (xp.cn))
注意数据库的名称是sqlnews,数据表是mynews,表里面的字段分别是id,title,keywords,autor,addtime,content。这些都不能错,如果改成其他的名称字段了,后面的代码中也要同步改。
如果懒得录入,就先建立一个名称为sqlnews的数据库,然后导入即可。
2. 查询数据库
2.1 创建文件dbconfig.php,保存常量
<?php
define("HOST","localhost");
define("USER","root"); //访问数据库的账号
define("PASS","root"); //访问数据库的密码
define("DBNAME","sqlnews"); //数据库名称
$conn = mysqli_connect(HOST,USER,PASS) or die("提示:数据库连接失败!");
// 选择数据库
mysqli_select_db($conn,DBNAME);
// 编码设置
mysqli_set_charset($conn,'utf8');
?>
2.2 创建主文件index.php(连接数据库、查询数据)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>新闻后台管理系统</title>
</head>
<style type="text/css">
.wrapper {width: 1000px;margin: 20px auto;}
h2 {text-align: center;}
.add {margin-bottom: 20px;}
.add a {text-decoration: none;color: #fff;background-color: green;padding: 6px;border-radius: 5px;}
td {text-align: center;}
</style>
<body>
<div class="wrapper">
<h2>新闻后台管理系统</h2>
<div class="add">
<a href="addnews.html">增加新闻</a>
</div>
<table width="960" border="1">
<tr>
<th>ID</th>
<th>标题</th>
<th>关键字</th>
<th>作者</th>
<th>发布时间</th>
<th>内容</th>
<th>操作</th>
</tr>
<?php
// 1.导入配置文件
require "dbconfig.php";
// 2. 连接mysql
// 3. 从DBNAME中查询到my_news数据库,返回数据库结果集,并按照addtime降序排列
$sql = 'select * from my_news order by id asc';
// 结果集
$result = mysqli_query($conn,$sql);
// var_dump($result);die;
//防止空数据时,报错
if (!$result) {
printf("Error: %s\n", mysqli_error($conn));
exit();
}
// 解析结果集,$row为新闻所有数据,$newsNum为新闻数目
$newsNum=mysqli_num_rows($result);
for($i=0; $i<$newsNum; $i++){
$row = mysqli_fetch_assoc($result);
echo "<tr>";
echo "<td>{$row['id']}</td>";
echo "<td>{$row['title']}</td>";
echo "<td>{$row['keywords']}</td>";
echo "<td>{$row['autor']}</td>";
echo "<td>{$row['addtime']}</td>";
echo "<td>{$row['content']}</td>";
echo "<td>
<a href='javascript:del({$row['id']})'>删除</a>
<a href='editnews.php?id={$row['id']}'>修改</a>
</td>";
echo "</tr>";
}
// 5. 释放结果集
mysqli_free_result($result);
mysqli_close($conn);
?>
</table>
</div>
<script type="text/javascript">
function del (id) {
if (confirm("确定删除这条新闻吗?")){
window.location = "action-del.php?id="+id;
}
}
</script>
</body>
</html>
页面如图:
3. 增加新闻
3.1 点击增加按钮,通过页面addnews.html添加数据
<!DOCTYPE html>
<link rel="stylesheet" href="./bootstrap/css/bootstrap.css">
<html>
<head>
<meta charset="UTF-8">
<title>添加新闻</title>
</head>
<style type="text/css">
form{
width: 300px;margin: 20px auto;
}
</style>
<body>
<p>
<h2>添加新闻</h2>
<form action="action-addnews.php" method="post">
<p > <label>标题:</label><input type="text" name="title">
<label>关键字:</label><input type="text" name="keywords">
<label>作者:</label><input type="text" name="autor">
<label>发布时间:</label><input type="date" name="addtime">
<label>内容:</label><textarea type="text" name="content"> </textarea>
<br><input type="submit" value="提交">
<input type="button" value="返回" onclick="javascript:window.location.href='index.php'"/>
</p>
</form> </p>
</body>
</html>
3.2 创建处理增加新闻的服务端文件action-addnews.php
<?php
// 处理增加操作的页面
require "dbconfig.php";
// 获取增加的新闻
$title = $_POST['title'];
$keywords = $_POST['keywords'];
$autor = $_POST['autor'];
$addtime = $_POST['addtime'];
$content = $_POST['content'];
// 插入数据
mysqli_query($conn,"INSERT INTO my_news(title,keywords,autor,addtime,content) VALUES ('$title','$keywords','$autor','$addtime','$content')") or die('添加数据出错:'.mysqli_error($conn));
header("Location:index.php");
?>
4. 删除新闻
4.1点击删除按钮,通过服务端文件action-del.php进行删除处理
<?php
// 处理删除操作的页面
require "dbconfig.php";
$id = $_GET['id'];
//删除指定数据
mysqli_query($conn,"DELETE FROM my_news WHERE id={$id}") or die('删除数据出错:'.mysqli_error($conn));
// 删除完跳转到新闻页
header("Location:index.php");
?>
5. 修改新闻
5.1 点击修改按钮,跳转到文件editnews.php进行修改处理
<!DOCTYPE html>
<link rel="stylesheet" href="./bootstrap/css/bootstrap.css">
<html>
<head>
<meta charset="UTF-8">
<title>修改新闻</title>
</head>
<style type="text/css">
form{
width: 400px;margin: 20px auto;
}
</style>
<body>
<?php
require "dbconfig.php";
$id = $_GET['id'];
$sql = mysqli_query($conn,"SELECT * FROM my_news WHERE id=$id");
$sql_arr = mysqli_fetch_assoc($sql);
?>
<p class="container">
<form action="action-editnews.php" method="post">
<label>新闻ID: </label><input type="text" name="id" value="<?php echo $sql_arr['id']?>">
<label>标题:</label><input type="text" name="title" value="<?php echo $sql_arr['title']?>">
<label>关键字:</label><input type="text" name="keywords" value="<?php echo $sql_arr['keywords']?>">
<label>作者:</label><input type="text" name="autor" value="<?php echo $sql_arr['autor']?>">
<label>发布时间:</label><input type="date" name="addtime" value="<?php echo $sql_arr['addtime']?>">
<label>内容:</label><textarea name="content" > <?php echo $sql_arr['content']?> </textarea>
<br><input type="submit" value="提交">
<input type="button" class="blue_btn" value="返回" onclick="javascript:window.location.href='index.php'"/>
</form>
</p>
</body>
</html>
5.2 通过服务端文件action-editnews.php进行修改处理
<?php
// 处理编辑操作的页面
require "dbconfig.php";
// 获取修改的新闻
$id = $_POST['id'];
$title = $_POST['title'];
$keywords = $_POST['keywords'];
$autor = $_POST['autor'];
$addtime = $_POST['addtime'];
$content = $_POST['content'];
// 更新数据
mysqli_query($conn,"UPDATE my_news SET title='$title',keywords='$keywords',autor='$autor',addtime='$addtime',content='$content' WHERE id=$id") or die('修改数据出错:'.mysqli_error($conn));
header("Location:index.php");
?>
代码源码下载:
此处为隐藏内容,请评论后查看隐藏内容,谢谢!
参考引用:
发表评论