PDO实现学生管理系统


Posted in PHP onMarch 21, 2020

这里实现一个简单的学生管理系统,供大家参考,具体内容如下

需要建立如下文件:

  • index.php
  • menu.php //菜单栏
  • add.php  //添加数据
  • edit.php // 编辑数据
  • action.php // 添加,删除,编辑的实现

分别写一下每个文件的代码:

menu.php:

<html>
<h2>学生信息管理</h2>
<a href="index.php" rel="external nofollow" >浏览学生</a>
<a href="add.php" rel="external nofollow" >增加学生</a>
<hr>
</html>

index.php

<html>
 <head>
  <meta charset="UTF-8">
  <title>学生信息管理系统</title>
 </head>
 <script>
  function doDel(id){
   if(confirm("是否要删除")){
    window.location='action.php?action=del&id='+id;
   }
  }
 </script>
 <body>
  <center>
   <?php include("menu.php");?>
   <h3>浏览学生信息</h3>
   <table width="600" border="1">
    <tr>
     <th>ID</th>
     <th>姓名</th>
     <th>姓别</th>
     <th>年龄</th>
     <th>班级</th>
     <th>操作</th>
    </tr>
    <?php
     //1. 连接数据库
     try{
      $pdo = new PDO("mysql:host=localhost;dbname=myapp;", "root", "");
 
     }catch(PDOException $e){
      die("fail to connect db".$e->getMessage());
     }
     //2. 执行数据库,并解析遍历
     $sql = "SELECT * FROM users";
     foreach($pdo->query($sql) as $val){
      echo "<tr>";
      echo "<td>{$val['id']}</td>";
      echo "<td>{$val['name']}</td>";
      echo "<td>{$val['sex']}</td>";
      echo "<td>{$val['age']}</td>";
      echo "<td>{$val['class']}</td>";
      echo "<td>
         <a href='javascript:doDel({$val['id']})'>删除</a>
         <a href='edit.php?id={$val['id']}'>修改</a>
        </td>";
      echo "</tr>";
     }
    ?>
   </table>
 
  </center>
 </body>
</html>

add.php

<html>
<head>
 <meta charset="UTF-8">
 <title>学生信息管理系统</title>
</head>
<body>
<center>
 <?php include("menu.php");?>
 <h3>增加学生信息</h3>
 <form action="action.php?action=add" method="post">
  <table>
   <tr>
    <td>姓名</td>
    <td><input type="text" name="name"/></td>
   </tr>
 
   <tr>
    <td>姓别</td>
    <td>
     <input type="radio" name="sex" value="m"/>男
     <input type="radio" name="sex" value="w"/>女
    </td>
 
   </tr>
 
   <tr>
    <td>年龄</td>
    <td><input type="text" name="age"/></td>
   </tr>
 
   <tr>
    <td>班级</td>
    <td><input type="text" name="class"/></td>
   </tr>
 
   <tr>
    <td> </td>
    <td>
     <input type="submit" value="增加"/>
     <input type="submit" value="重置"/>
    </td>
 
   </tr>
  </table>
 </form>
</center>
</body>
</html>

edit.php

<html>
<head>
 <meta charset="UTF-8">
 <title>学生信息管理系统</title>
</head>
<body>
<center>
 <?php include("menu.php");
 //获取修改信息
 //1. 连接数据库
 try{
  $pdo = new PDO("mysql:host=localhost;dbname=myapp;", "root", "");
 
 }catch(PDOException $e){
  die("fail to connect db".$e->getMessage());
 }
 //2. 拼装sql语句,取出信息
 $sql = "SELECT * FROM users WHERE id=".$_GET['id'];
 $stmt = $pdo->query($sql);
 if($stmt->rowCount() > 0){
  $stu = $stmt->fetch(PDO::FETCH_ASSOC); //解析数据
 }else{
  die("没有修改的信息");
 }
 ?>
 <h3>修改学生信息</h3>
 <form action="action.php?action=edit" method="post">
 <!-- 以隐藏域的方式添加id  -->
  <input type="hidden" name="id" value="<?php echo $stu['id']; ?>">
  <table>
   <tr>
    <td>姓名</td>
    <td><input type="text" name="name" value="<?php echo $stu['name'];?>"/></td>
   </tr>
 
   <tr>
    <td>姓别</td>
    <td>
     <input type="radio" name="sex" value="m" <?php echo ($stu['sex']==
      "m")? "checked": ""; ?>/>男
     <input type="radio" name="sex" value="w" <?php echo ($stu['sex']==
      "w")? "checked": ""; ?>/>女
    </td>
 
   </tr>
 
   <tr>
    <td>年龄</td>
    <td><input type="text" name="age" value="<?php echo $stu['age'];?>"/></td>
   </tr>
 
   <tr>
    <td>班级</td>
    <td><input type="text" name="class" value="<?php echo $stu['class'];?>"/></td>
   </tr>
 
   <tr>
    <td> </td>
    <td>
     <input type="submit" value="修改"/>
     <input type="submit" value="重置"/>
    </td>
 
   </tr>
  </table>
 </form>
</center>
</body>
</html>

action.php

<?php
//1. 连接数据库
try{
 $pdo = new PDO("mysql:host=localhost;dbname=myapp;", "root", "");
 
}catch(PDOException $e){
 die("fail to connect db".$e->getMessage());
}
//2. 通过action的值做相应的操作
switch($_GET['action']){
 case "add": //增加操作
  $name = $_POST['name'];
  $sex = $_POST['sex'];
  $age = $_POST['age'];
  $class = $_POST['class'];
 
  $sql = "INSERT INTO users VALUES (null, '{$name}','{$sex}', '{$age}', '{$class}')";
  $rw = $pdo->exec($sql);
  if($rw > 0){
   echo "<script>alert('增加成功'); window.location='index.php'</script>";
  }else{
   echo "<script>alert('增加失败'); window.history.back()</script>";
  }
  break;
 case "del":
  $id = $_GET['id'];
  $sql = "DELETE FROM users WHERE id={$id}";
  $pdo->exec($sql);
  header("location:index.php");
  break;
 case "edit":
  $name = $_POST['name'];
  $sex = $_POST['sex'];
  $age = $_POST['age'];
  $class = $_POST['class'];
  $id = $_POST['id'];
 
  $sql = "UPDATE users SET name='{$name}',sex='{$sex}',age={$age},class={$class}
    WHERE id={$id}";
  $rw = $pdo->exec($sql);
  if($rw > 0){
   echo "<script>alert('修改成功'); window.location='index.php'</script>";
  }else{
   echo "<script>alert('修改失败'); window.history.back()</script>";
  }
  break;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
php获取地址栏信息的代码
Oct 08 PHP
php 无限级缓存的类的扩展
Mar 16 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
is_uploaded_file函数引发的不能上传文件问题
Oct 29 PHP
destoon常用的安全设置概述
Jun 21 PHP
thinkphp特殊标签用法概述
Nov 24 PHP
php使用unset()删除数组中某个单元(键)的方法
Feb 17 PHP
Smarty保留变量用法分析
May 23 PHP
PHP搭建大文件切割分块上传功能示例
Jan 04 PHP
php redis实现文章发布系统(用户投票系统)
Mar 04 PHP
PHP中的日期时间处理利器实例(Carbon)
Jun 09 PHP
php中配置文件保存修改操作 如config.php文件的读取修改等操作
May 12 PHP
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
Mar 18 #PHP
YII2框架使用控制台命令的方法分析
Mar 18 #PHP
YII2框架中添加自定义模块的方法实例分析
Mar 18 #PHP
YII2框架中日志的配置与使用方法实例分析
Mar 18 #PHP
YII2框架中查询生成器Query()的使用方法示例
Mar 18 #PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
Mar 18 #PHP
Laravel框架下的Contracts契约详解
Mar 17 #PHP
You might like
PHP 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
php4与php5的区别小结(配置异同)
2011/12/20 PHP
简单实现限定phpmyadmin访问ip的方法
2013/03/05 PHP
PHP取二进制文件头快速判断文件类型的实现代码
2013/08/05 PHP
ThinkPHP分页实例
2014/10/15 PHP
php计算函数执行时间的方法
2015/03/20 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
判断javascript的数据类型(示例代码)
2013/12/11 Javascript
JavaScript中String.prototype用法实例
2015/05/20 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
详解如何在Angular中快速定位DOM元素
2017/05/17 Javascript
Vue-cli项目获取本地json文件数据的实例
2018/03/07 Javascript
通过说明与示例了解js五种设计模式
2019/06/17 Javascript
layui点击左侧导航栏,实现不刷新整个页面,只刷新局部的方法
2019/09/25 Javascript
JS数组方法slice()用法实例分析
2020/01/18 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
Python中itertools模块用法详解
2014/09/25 Python
Python抽象类的新写法
2015/06/18 Python
深入学习python的yield和generator
2016/03/10 Python
python+pygame简单画板实现代码实例
2017/12/13 Python
Python序列对象与String类型内置方法详解
2019/10/22 Python
dpn网络的pytorch实现方式
2020/01/14 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
Django之富文本(获取内容,设置内容方式)
2020/05/21 Python
解决tensorflow模型压缩的问题_踩坑无数,总算搞定
2021/03/02 Python
Html5 localStorage入门教程
2018/04/26 HTML / CSS
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
会计应届生的自荐信
2013/12/13 职场文书
关于迟到的检讨书
2014/01/26 职场文书
党员公开承诺书和承诺事项
2014/03/25 职场文书
开学典礼策划方案
2014/05/28 职场文书
大学考试作弊检讨书
2015/05/06 职场文书
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android