PHP+MySQL 学生信息管理系统

发布于:2024-12-19 ⋅ 阅读:(10) ⋅ 点赞:(0)

 

目录

MySQL建表指令

主页面展示

主页面源代码如下

增:添加学生信息

添加html如下

html:主要用于显示网页内容

成功添加后回显 ​编辑

增加php如下

删:删除学生信息 

删除html如下

 成功删除后回显

 删除php如下

 改:修改学生信息

修改html如下

 修改php如下

查:查看学生信息

查看html如下

成功查看后回显

查看php如下

问题和解决方法


 

本次基于数据库的应用设计基于学生信息管理系统实现增、删、改、查等基本功能首先建立student数据库,然后建立了学生基本信息表

MySQL建表指令

CREATE TABLE student (
    学号 VARCHAR(11) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NOT NULL,
    姓名 VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NOT NULL,
    性别 VARCHAR(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NOT NULL,
    出生日期 DATE NOT NULL,
    院系 VARCHAR(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_croatian_ci NOT NULL
);

主页面展示

4638e45c25264b20b99b79ba660218ac.png

主页面源代码如下

<!DOCTYPE html>  
<html lang="zh">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>学生基本信息管理系统</title>  
    <style>  
        body {  
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;  
            background-color: #eef2f3;  
            color: #333;  
            text-align: center;  
            padding: 50px;  
            margin: 0;  
        }  

        h2 {  
            color: #007BFF;  
            margin-bottom: 20px;  
            font-size: 2.5em;  
        }  

        h3 {  
            color: #555;  
            font-size: 1.8em;  
            margin: 30px 0 15px;  
        }  

        a {  
            display: inline-block;  
            width: 220px;  
            margin: 15px auto;  
            padding: 15px 0;  
            background-color: #007BFF;  
            color: #fff;  
            text-decoration: none;  
            border-radius: 25px;  
            font-size: 1.1em;  
            transition: background-color 0.3s ease, transform 0.2s ease;  
            box-shadow: 0 4px 8px rgba(0, 123, 255, 0.2);  
        }  

        a:hover {  
            background-color: #0056b3;  
            transform: translateY(-2px);  
            box-shadow: 0 6px 12px rgba(0, 86, 179, 0.3);  
        }  

        a:active {  
            transform: translateY(0);  
            box-shadow: 0 2px 4px rgba(0, 123, 255, 0.2);  
        }  

        footer {  
            margin-top: 30px;  
            font-size: 0.9em;  
            color: #777;  
        }  
    </style>  
</head>  

<body>  
    <h2>学生基本信息管理系统</h2><br>  
    <h3>学生管理</h3>  
    <a href="insertS.html">添加学生信息</a>  
    <a href="seekS.html">查看学生信息</a>  
    <a href="updateS.html">修改学生信息</a>  
    <a href="deletes.html">删除学生信息</a>  
    <h3>管理员管理</h3>  
    <a href="insertA.html">添加管理员</a>  
    <a href="seekA.html">查看管理员</a>  
    
    <footer>  
        &copy; xxx | 版权所有  
    </footer>  
</body>  
</html>

增:添加学生信息

06d959c233ab4fd8982382f445e6a6f3.png

添加html如下

html:主要用于显示网页内容

<?php  
$con = mysqli_connect("localhost:3306", "root", "123456");  
if (!mysqli_select_db($con, "student")) { // 判断是否连接成功  
    echo "连接 student 数据库出错"; // 输出连接失败信息  
    exit; // 退出程序  
} else {  
    echo "连接 student 数据库成功\n";  
}  
mysqli_query($con, "set names utf8"); // 设置utf-8字符集  
?>  

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>添加学生信息</title>  
    <style>  
        body {  
            font-family: Arial, sans-serif;  
            background-color: #f4f4f4;  
            margin: 0;  
            padding: 20px;  
        }  
        h3 {  
            text-align: center;  
            color: #333;  
        }  
        form {  
            background-color: #fff;  
            padding: 20px;  
            border-radius: 5px;  
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);  
            max-width: 400px;  
            margin: 0 auto;  
        }  
        label {  
            display: block;  
            margin: 10px 0 5px;  
            color: #555;  
        }  
        input[type="text"] {  
            width: calc(100% - 20px);  
            padding: 10px;  
            border: 1px solid #ccc;  
            border-radius: 4px;  
            font-size: 16px;  
        }  
        input[type="submit"] {  
            background-color: #5cb85c;  
            color: white;  
            border: none;  
            padding: 10px 15px;  
            border-radius: 4px;  
            cursor: pointer;  
            font-size: 16px;  
            width: 100%;  
            margin-top: 10px;  
        }  
        input[type="submit"]:hover {  
            background-color: #4cae4c;  
        }  
    </style>  
</head>  
<body>  
    <h3>添加学生信息</h3>  
    <form name="insertS" method="post" action="insertS.php">  
        <label for="学号">学号:</label>  
        <input type="text" name="学号" id="学号" required>  

        <label for="姓名">姓名:</label>  
        <input type="text" name="姓名" id="姓名" required>  

        <label for="性别">性别:</label>  
        <input type="text" name="性别" id="性别" required>  

        <label for="出生年月">出生年月:</label>  
        <input type="text" name="出生年月" id="出生年月" required>  

        <label for="院系">院系:</label>  
        <input type="text" name="院系" id="院系" required>  

        <input type="submit" value="提交">  
    </form>  
</body>  
</html>

成功添加后回显 a4c2bc469e5742c1b058cc9561ddf355.png

增加php如下

<?php
    $con=mysqli_connect("localhost:3306","root","123456");
    if(!mysqli_select_db($con,"student"))                 //判断是否连接成功
        {   echo "连接 student 数据库出错";                //输出连接失败信息
            exit;                                         //退出程序
        }
    else echo "连接 student 数据库成功\n";
    mysqli_query($con,"set names utf8");                  //设置utf-8字符集
mysqli_query($con,"set   names   utf8");                  //设置中文字符集 utf8
$学号=$_POST["学号"];
$姓名=$_POST["姓名"];
$性别=$_POST["性别"];
$出生年月=$_POST["出生年月"];
$院系=$_POST["院系"];
$q="INSERT INTO 学生基本信息 VALUES
('$学号','$姓名','$性别','$出生年月','$院系')";
if(mysqli_query($con,$q))
    {
        echo "新学生记录已经成功加入到学生基本信息中";
        //header("Location:sindex.php");        // 插入数据成功后,进行重定向到首页
        //exit; // 确保重定向后立即退出脚本
    }
else
    {
        echo "添加记录不成功";     
        //header("Location:indexA.html");       // 插入数据成功后,进行重定向到首页
        //exit; // 确保重定向后立即退出脚本
    }
mysqli_close($con);
?>

<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">      
<title>学生信息记录添加-反馈</title>
</head>
<body>
    <br>
    <a href="sindex.html">返回</a>
</body>
</html>

删:删除学生信息 

156b991ea90b46cfa956dbcdc827ccf5.png

删除html如下

<?php  
$con = mysqli_connect("localhost:3306", "root", "123456");  
if (!mysqli_select_db($con, "student")) { // 判断是否连接成功  
    echo "连接 student 数据库出错\n"; // 输出连接失败的信息  
    exit; // 退出程序  
} else {  
    echo "连接 student 数据库成功\n";  
}  
mysqli_query($con, "set names utf8"); // 设置中文字符集 utf8  
?>  

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>删除学生信息</title>  
    <style>  
        body {  
            font-family: Arial, sans-serif;  
            background-color: #f4f4f4;  
            margin: 0;  
            padding: 20px;  
        }  
        h3 {  
            text-align: center;  
            color: #333;  
        }  
        form {  
            background-color: #fff;  
            padding: 20px;  
            border-radius: 5px;  
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);  
            max-width: 400px;  
            margin: 20px auto;  
        }  
        label {  
            display: block;  
            margin: 10px 0 5px;  
            color: #555;  
        }  
        input[type="text"] {  
            width: calc(100% - 20px);  
            padding: 10px;  
            border: 1px solid #ccc;  
            border-radius: 4px;  
            font-size: 16px;  
        }  
        input[type="submit"] {  
            background-color: #dc3545; /* Red color for delete action */  
            color: white;  
            border: none;  
            padding: 10px 15px;  
            border-radius: 4px;  
            cursor: pointer;  
            font-size: 16px;  
            width: 100%;  
            margin-top: 10px;  
        }  
        input[type="submit"]:hover {  
            background-color: #c82333; /* Darker red color on hover */  
        }  
    </style>  
</head>  
<body>  
    <h3>删除学生信息</h3>  
    <form name="seekS" method="post" action="deleteS.php">  
        <label for="学号">学号:</label>  
        <input type="text" name="学号" id="学号" required>  
        
        <input type="submit" value="提交">  
    </form>  
</body>  
</html>

 成功删除后回显

e149ca9a808b43988ad31332d0f2d30f.png

 删除php如下

<?php
    $con=mysqli_connect("localhost:3306","root","123456");
    if(!mysqli_select_db($con,"student"))            //判断是否连接成功
    { echo "连接 student 数据库出错\n";                //输出连接失败的信息
      exit;                                          //退出程序
    }
    else echo "连接 student 数据库成功\n";
    mysqli_query($con,"set names utf8");              //设置utf-8字符集
    $学号=$_POST["学号"];
    $q="DELETE FROM 学生基本信息 WHERE  学号='$学号'"; 
    if(mysqli_query($con,$q))
        echo "学生相关信息删除成功";
    else
        echo "学生相关信息删除失败";
    mysqli_close($con);
?>

<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">      
<title>学生信息记录删除-反馈</title>
</head>
<body>
	<br>
	<a href="sindex.html">返回</a>
</body>
</html>

 改:修改学生信息

0e173cf8870c41fab5b195a71e86466e.png

修改html如下

<!DOCTYPE html>  
<html lang="zh">  
<head>  
    <meta charset="UTF-8">  
    <meta name="viewport" content="width=device-width, initial-scale=1.0">  
    <title>修改学生信息</title>  
    <style>  
        body {  
            font-family: Arial, sans-serif;  
            margin: 20px;  
        }  
        form {  
            margin-top: 20px;  
        }  
        label {  
            display: block;  
            margin: 10px 0 5px;  
        }  
        input[type="text"] {  
            width: 300px;  
            padding: 10px;  
            margin-bottom: 15px;  
        }  
        input[type="submit"] {  
            padding: 10px 15px;  
            background-color: #4CAF50;  
            color: white;  
            border: none;  
            cursor: pointer;  
        }  
        input[type="submit"]:hover {  
            background-color: #45a049;  
        }  
    </style>  
</head>  
<body>  
    <h2>修改学生信息</h2>  
    <form name="modifyS" method="post" action="updateS.php">  
        学号:<input type="text" name="学号" required><br>  
        <input type="submit" value="查找学生信息">  
    </form>  
</body>  
</html>

 修改php如下

<?php  
// 连接到 MySQL 数据库  
$con = mysqli_connect("localhost:3306", "root", "123456");  
if (!$con) {  
    die("连接数据库失败: " . mysqli_connect_error());  
}  

// 选择数据库  
if (!mysqli_select_db($con, "student")) {  
    echo "连接 student 数据库出错";  
    exit;  
}  

// 设置字符集为 utf8  
mysqli_query($con, "set names utf8");  

// 检查表单是否通过 POST 方法提交  
if ($_SERVER["REQUEST_METHOD"] == "POST") {  
    // 获取表单数据并进行转义以防止 SQL 注入  
    $studentId = mysqli_real_escape_string($con, $_POST['学号']);  
    $name = mysqli_real_escape_string($con, $_POST['姓名']);  
    $gender = mysqli_real_escape_string($con, $_POST['性别']);  
    $birthDate = mysqli_real_escape_string($con, $_POST['出生年月']);  
    $department = mysqli_real_escape_string($con, $_POST['院系']);  

    // 更新数据的 SQL 语句  
    $sql = "UPDATE students SET 姓名='$name', 性别='$gender', 出生年月='$birthDate', 院系='$department' WHERE 学号='$studentId'";  

    // 执行更新操作并检查结果  
    if (mysqli_query($con, $sql)) {  
        echo "学生信息更新成功";  
    } else {  
        echo "更新记录出错: " . mysqli_error($con);  
    }  
}  

// 关闭数据库连接  
mysqli_close($con);  
?>

查:查看学生信息

46d68c363d914efa8c47da0608442a39.png

查看html如下

<?php  
$con = mysqli_connect("localhost:3306", "root", "123456");  
if (!mysqli_select_db($con, "student")) { // 判断是否连接成功  
    echo "连接 student 数据库出错\n"; // 输出连接失败的信息  
    exit; // 退出程序  
} else {  
    echo "连接 student 数据库成功\n";  
}  
mysqli_query($con, "set names utf8"); // 设置中文字符集 utf8  
?>  

<!DOCTYPE html>  
<html lang="zh-CN">  
<head>  
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
    <title>查看学生信息</title>  
    <style>  
        body {  
            font-family: Arial, sans-serif;  
            background-color: #f4f4f4;  
            margin: 0;  
            padding: 20px;  
        }  
        h3 {  
            text-align: center;  
            color: #333;  
        }  
        form {  
            background-color: #fff;  
            padding: 20px;  
            border-radius: 5px;  
            box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);  
            max-width: 400px;  
            margin: 20px auto;  
        }  
        label {  
            display: block;  
            margin: 10px 0 5px;  
            color: #555;  
        }  
        input[type="text"] {  
            width: calc(100% - 20px);  
            padding: 10px;  
            border: 1px solid #ccc;  
            border-radius: 4px;  
            font-size: 16px;  
        }  
        input[type="submit"] {  
            background-color: #007bff;  
            color: white;  
            border: none;  
            padding: 10px 15px;  
            border-radius: 4px;  
            cursor: pointer;  
            font-size: 16px;  
            width: 100%;  
            margin-top: 10px;  
        }  
        input[type="submit"]:hover {  
            background-color: #0056b3;  
        }  
    </style>  
</head>  
<body>  
    <h3>查询学生信息</h3>  
    <form name="seekS" method="post" action="seekS.php">  
        <label for="学号">学号:</label>  
        <input type="text" name="学号" id="学号" required>  
        
        <input type="submit" value="提交">  
    </form>  
</body>  
</html> 

成功查看后回显

ca071969e37b42a194535086d28711e4.png

查看php如下

<?php
    $con=mysqli_connect("localhost:3306","root","123456");
    if(!mysqli_select_db($con,"student"))            //判断是否连接成功
    { echo "连接 student 数据库出错\n";                //输出连接失败的信息
      exit;                                          //退出程序
    }
    else echo "连接 student 数据库成功\n";
    mysqli_query($con,"set names utf8");              //设置utf-8字符集
    $学号=$_POST["学号"];
    $q="SELECT 姓名,性别,出生日期,院系 FROM 学生基本信息
       WHERE 学号='$学号'"; 
    $result=mysqli_query($con,$q);
    if($result)
    {
        echo "信息查询成功<br>";
        $p=mysqli_fetch_array($result,MYSQLI_BOTH);
        if($p)
        {
            echo "姓名:".$p[0]."<br>";
            echo "性别:".$p[1]."<br>";
            echo "出生日期:".$p[2]."<br>";
            echo "院系:".$p[3]."<br>";
        }
        else echo “该学生信息不存在”;
    }
    else echo "信息查询失败";
?>

<html>
<head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">      
<title>学生信息记录查看-反馈</title>
</head>
<body>
    <br>
    <a href="sindex.html">返回</a>
</body>
</html>

问题和解决方法

 

  1. 数据库连接问题
    1. 问题描述:在进行增、删、改、查操作时,多次出现无法连接到student数据库的情况,导致操作无法正常进行。
    2. 解决方法:仔细检查数据库连接代码,确保mysqli_connect函数中的参数正确,包括主机名、用户名和密码。同时,检查mysqli_select_db函数是否正确选择了要使用的数据库。通过逐步调试,发现是密码输入错误,修正后成功连接数据库。
  2. SQL 注入问题
    1. 问题描述:在用户输入数据进行数据库操作时,可能存在恶意用户输入 SQL 语句来破坏数据库的安全性。
    2. 解决方法:使用mysqli_real_escape_string函数对用户输入的数据进行转义,确保输入的数据不会被当作 SQL 语句执行,从而提高了数据库的安全性。