(∩_∩)
1.概述
学了php的一些基础,包括HTML,php,pdo,mysql操作等,一直都没有将它们有机结合。最近写了一个简单的网页版学生信息管理系统,前台用HTML,脚本用到了JavaScript和PHP,数据库用到了MySQL。麻雀虽小,五脏俱全。算是对这些知识的一次总结吧。
2.源码
工程包括5个php文件:
index.php,负责首页展现;
menu.php,负责前台的菜单实现;
add.php,负责添加页面的实现;
edit.php,负责编辑页面的实现;
action.php,负责对增删查改操作的实现。
index.php
1 <!DOCTYPE html> 2 <head> 3 <meta charset="UTF-8"> 4 <title>学生信息管理</title> 5 <script> 6 function doDel(id) { 7 if (confirm("确定要删除么?")) { 8 window.location = 'action.php?action=del&id='+id; 9 } 10 } 11 </script> 12 </head> 13 <body> 14 <center> 15 <?php 16 include_once "menu.php"; 17 ?> 18 <h3>浏览学生信息</h3> 19 <table width="600" border="1"> 20 <tr> 21 <th>ID</th> 22 <th>姓名</th> 23 <th>性别</th> 24 <th>年龄</th> 25 <th>班级</th> 26 <th>操作</th> 27 </tr> 28 <?29 //1.连接数据库 30 try { 31 $pdo = new PDO("mysql:host=localhost;dbname=test;","root",""); 32 } catch (PDOException $e) { 33 die("数据库连接失败" . $e->getMessage()); 34 35 2.解决中文乱码问题 36 $pdo->query("SET NAMES 'UTF8'"37 3.执行sql语句,并实现解析和遍历 38 $sql = "SELECT * FROM stu "39 foreach ($pdo->query($sql) as $row40 echo "<tr>"41 echo "<td>{$row['id']}</td>"42 $row['name']}</td>"43 $row['sex']}</td>"44 $row['age']}</td>"45 $row['classid']}</td>"46 echo "<td> 47 <a href='javascript:doDel({['id']})'>删除</a> 48 <a href='edit.php?id=({['id']})'>修改</a> 49 </td>"50 echo "</tr>"51 52 53 ?> 54 55 </table> 56 </center> 57 58 </body> 59 </html>
menu.php
1 <h2>学生信息管理</h2> 2 <a href="index.php">浏览学生</a> 3 <a href="add.php">增加学生</a> 4 <hr>
add.php
1 <html> 3 <title>学生信息管理</title> 4 </head> 5 <body> 6 <center> 7 <?php include_once "menu.php"; ?> 8 <h3>增加学生信息</h3> 9 10 <form id="addstu" name="addstu" method="post" action="action.php?action=add"> 11 <table> 12 <tr> 13 <td>姓名</td> 14 <td><input id="name" name="name" type="text"/></td> 15 16 </tr> 17 <tr> 18 <td>性别</td> 19 <td><input type="radio" name="sex" value="m"/> 男 20 <input type="radio" name="sex" value="w"/> 女 21 </td> 22 </tr> 23 <tr> 24 <td>年龄</td> 25 <td><input type="text" name="age" id="age"/></td> 26 </tr> 27 <tr> 28 <td>班级</td> 29 <td><input id="classid" name="classid" type="text"/></td> 30 </tr> 31 <tr> 32 <td> </td> 33 <td><input type="submit" value="增加"/> 34 <input type="reset" value="重置"/> 35 </td> 36 </tr> 37 </table> 38 39 </form> 40 </center> 41 </body> 42 </html>
edit.php
5 6 </head> 7 <body> 8 <center> 9 <?10 include_once"menu.php"11 12 { 13 14 }catch(PDOException ){ 15 die("数据库连接失败".16 } 17 2.防止中文乱码 18 19 3.拼接sql语句,取出信息 20 $sql = "SELECT * FROM stu WHERE id =".$_GET['id']; 21 $stmt = $sql);返回预处理对象 22 if($stmt->rowCount()>023 $stu = $stmt->fetch(PDO::FETCH_ASSOC);按照关联数组进行解析 24 }else25 die("没有要修改的数据!"26 27 ?> 28 <form id="addstu" name="editstu" method="post" action="action.php?action=edit"> 29 <input type="hidden" name="id" id="id" value="<?php echo $stu['id'];?>"/> 30 <table> 32 <td>姓名</td> 33 <td><input id="name" name="name" type="text" value="<?php echo $stu['name']?>"/></td> 34 35 </tr> 36 <tr> 37 <td>性别</td> 38 <td><input type="radio" name="sex" value="m" <?php echo ($stu['sex']=="m")? "checked" : ""?>/>&39 <input type="radio" name="sex" value="w" <?php $stu['sex']=="w")? "checked" : ""?>/>&40 </td> 41 </tr> 42 <tr> 43 <td>年龄</td> 44 <td><input type="text" name="age" id="age" value="<?php echo $stu['age']?>"/></td> 45 </tr> 46 <tr> 47 <td>班级</td> 48 <td><input id="classid" name="classid" type="text" value="<?php echo $stu['classid']?>"/></td> 49 </tr> 50 <tr> 51 <td> </td> 52 <td><input type="submit" value="修改"/> &53 <input type="reset" value="重置"/> 54 </td> 55 </tr> 56 </table> 58 </form> 59 60 61 62 </center> 63 </body> 64 </html>
action.php
1 <? 2 3 4 6 } 7 8 } 10 11 3.通过action的值进行对应操作 12 switch ($_GET['action']) { 13 case 'add':{ 增加操作 14 $name = $_POST['name'15 $sex = $_POST['sex'16 $age = $_POST['age'17 $classid = $_POST['classid'18 19 写sql语句 20 $sql = "INSERT INTO stu VALUES (NULL,'{$name}',1)">$sex}',1)">$age}',1)">$classid}')"21 $rw = $pdo->exec($sql22 if ($rw > 023 <script> alert('增加成功'); 24 window.location='index.php'; //跳转到首页 25 </script>"26 } 27 <script> alert('增加失败'); 28 window.history.back(); //返回上一页 29 </script>"30 31 break32 33 case "del": { 1.获取表单信息 34 $id = 35 $sql = "DELETE FROM stu WHERE id={$id}"header("Location:index.php");跳转到首页 38 39 40 case "edit" :{ 41 $_POST['id'42 43 44 45 46 47 $sql = "UPDATE stu SET name='{$classid}' WHERE id='{$id}'"48 $rw=49 $rw>0echo "<script>alert('修改成功');window.location='index.php'</script>"51 }52 echo "<script>alert('修改失败');window.history.back()</script>"53 55 56 57 58 59 }
3.效果
4.总结
(1)在做这个小工程时,感觉自己有了很大提高。想到从前台的改变,直接对数据库实现了操作,很神奇。发现自己的弱点是数据传输,利用参数传递比较薄弱。对于JavaScript脚本的使用还很生硬。
(2)在写的过程中遇到了编码的问题,在这里说明对于服务器的字符集,数据库的字符集,每张表的字符集,页面的字符集都要一致,最好是都设置成UTF-8,然后为了解决从数据库取出数据时的中文乱码问题,在php中连接数据库后就需要执行一句:“SET NAMES 'UTF8'”。
由于我用的xampp,需要在创建表时,选择general_utf8_ci的字符集。
原文地址:https://www.cnblogs.com/yuxiuyan
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。