近期搞微信小程序,云开发数据居然收费了,无奈只能自搞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
<?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(连接数据库、查询数据)
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添加数据
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: 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
<?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
<?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进行修改处理
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
<?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"); ?>
代码源码下载:
此处为隐藏内容,请评论后查看隐藏内容,谢谢!
参考引用:
发表评论