当前位置:首页 > PHP

php实现人员管理系统

2026-02-14 02:34:52PHP

数据库设计

创建数据库表结构存储人员信息,通常包括以下字段:

  • id:主键,自增
  • name:姓名
  • age:年龄
  • gender:性别
  • position:职位
  • salary:薪资
  • department:部门
  • join_date:入职日期

SQL创建表示例:

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    age INT,
    gender ENUM('Male', 'Female', 'Other'),
    position VARCHAR(100),
    salary DECIMAL(10,2),
    department VARCHAR(100),
    join_date DATE
);

连接数据库

使用PDO连接MySQL数据库:

$host = 'localhost';
$dbname = 'personnel_system';
$username = 'root';
$password = '';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
    die("Connection failed: " . $e->getMessage());
}

添加人员功能

创建表单接收用户输入并插入数据库:

if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['add'])) {
    $stmt = $pdo->prepare("INSERT INTO employees (name, age, gender, position, salary, department, join_date) 
                          VALUES (:name, :age, :gender, :position, :salary, :department, :join_date)");

    $stmt->execute([
        ':name' => $_POST['name'],
        ':age' => $_POST['age'],
        ':gender' => $_POST['gender'],
        ':position' => $_POST['position'],
        ':salary' => $_POST['salary'],
        ':department' => $_POST['department'],
        ':join_date' => $_POST['join_date']
    ]);

    header("Location: index.php");
    exit();
}

显示人员列表

查询并显示所有人员信息:

php实现人员管理系统

$stmt = $pdo->query("SELECT * FROM employees");
$employees = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach ($employees as $employee) {
    echo "<tr>
            <td>{$employee['id']}</td>
            <td>{$employee['name']}</td>
            <td>{$employee['age']}</td>
            <td>{$employee['gender']}</td>
            <td>{$employee['position']}</td>
            <td>{$employee['salary']}</td>
            <td>{$employee['department']}</td>
            <td>{$employee['join_date']}</td>
            <td>
                <a href='edit.php?id={$employee['id']}'>Edit</a>
                <a href='delete.php?id={$employee['id']}' onclick='return confirm(\"Are you sure?\")'>Delete</a>
            </td>
          </tr>";
}

编辑人员信息

实现编辑功能需要先查询原有数据再更新:

// 查询原有数据
$stmt = $pdo->prepare("SELECT * FROM employees WHERE id = ?");
$stmt->execute([$_GET['id']]);
$employee = $stmt->fetch();

// 更新数据
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['update'])) {
    $stmt = $pdo->prepare("UPDATE employees SET 
                          name = :name, 
                          age = :age, 
                          gender = :gender, 
                          position = :position, 
                          salary = :salary, 
                          department = :department, 
                          join_date = :join_date 
                          WHERE id = :id");

    $stmt->execute([
        ':name' => $_POST['name'],
        ':age' => $_POST['age'],
        ':gender' => $_POST['gender'],
        ':position' => $_POST['position'],
        ':salary' => $_POST['salary'],
        ':department' => $_POST['department'],
        ':join_date' => $_POST['join_date'],
        ':id' => $_POST['id']
    ]);

    header("Location: index.php");
    exit();
}

删除人员记录

实现删除功能:

if (isset($_GET['id'])) {
    $stmt = $pdo->prepare("DELETE FROM employees WHERE id = ?");
    $stmt->execute([$_GET['id']]);

    header("Location: index.php");
    exit();
}

安全注意事项

防止SQL注入:

php实现人员管理系统

  • 始终使用预处理语句
  • 对用户输入进行验证和过滤

数据验证示例:

function validateInput($data) {
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}

分页功能

实现数据分页显示:

$perPage = 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $perPage;

$total = $pdo->query("SELECT COUNT(*) FROM employees")->fetchColumn();
$totalPages = ceil($total / $perPage);

$stmt = $pdo->prepare("SELECT * FROM employees LIMIT :offset, :perPage");
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->bindParam(':perPage', $perPage, PDO::PARAM_INT);
$stmt->execute();
$employees = $stmt->fetchAll(PDO::FETCH_ASSOC);

搜索功能

添加姓名搜索功能:

if (isset($_GET['search'])) {
    $search = '%' . $_GET['search'] . '%';
    $stmt = $pdo->prepare("SELECT * FROM employees WHERE name LIKE :search");
    $stmt->execute([':search' => $search]);
    $employees = $stmt->fetchAll(PDO::FETCH_ASSOC);
}

这个基础的人员管理系统包含了CRUD(创建、读取、更新、删除)功能,可以根据需要进一步扩展,如添加用户认证、权限管理、文件上传等功能。

分享给朋友:

相关文章

vue实现教务管理系统

vue实现教务管理系统

Vue 实现教务管理系统的关键步骤 系统架构设计 采用前后端分离架构,前端使用 Vue.js + Element UI 或 Ant Design Vue,后端可选择 Spring Boot、Node.…

vue管理系统项目实现

vue管理系统项目实现

Vue 管理系统项目实现指南 技术选型与基础搭建 Vue 3 + TypeScript + Vite 作为基础开发环境,搭配 Vue Router 和 Pinia 实现路由与状态管理。Element…

uniapp 管理系统

uniapp 管理系统

uniapp 管理系统的特点 uniapp 是一个基于 Vue.js 的跨平台开发框架,可以快速构建多端应用(H5、小程序、App 等)。使用 uniapp 开发管理系统具有以下优势: 跨平台兼容性…

vue实现人员选择

vue实现人员选择

Vue 实现人员选择功能 在 Vue 中实现人员选择功能,通常需要结合表单元素和组件化开发。以下是几种常见的实现方式: 使用下拉选择框(Select) <template> <…

vue实现管理系统

vue实现管理系统

Vue 实现管理系统的方法 使用 Vue 实现管理系统通常需要结合 Vue 的核心功能、UI 框架和状态管理工具。以下是实现管理系统的主要方法: 搭建基础框架 安装 Vue CLI 创建项目: n…

vue实现人员滚动抽奖

vue实现人员滚动抽奖

Vue实现人员滚动抽奖 核心思路 通过Vue的数据绑定和动画特性,结合JavaScript定时器实现人员名单的滚动效果,最终随机停止并显示中奖结果。 实现步骤 准备数据与基础模板 <temp…