当前位置:首页 > 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();
}

显示人员列表

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

$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注入:

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

数据验证示例:

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(创建、读取、更新、删除)功能,可以根据需要进一步扩展,如添加用户认证、权限管理、文件上传等功能。

php实现人员管理系统

分享给朋友:

相关文章

css制作教务管理系统

css制作教务管理系统

设计教务管理系统的CSS样式 教务管理系统的CSS设计需要兼顾功能性、美观性和响应式布局。以下是一些关键CSS样式设计方法: 全局样式与布局 设置基础字体、颜色和间距变量,确保整体风格统一。使用C…

vue实现教务管理系统

vue实现教务管理系统

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

php实现人员管理系统

php实现人员管理系统

PHP实现人员管理系统的基本步骤 数据库设计 创建数据库表存储人员信息,通常包括字段如id、name、age、position等。MySQL示例: CREATE TABLE employees (…

uniapp 管理系统

uniapp 管理系统

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

vue实现后端管理系统

vue实现后端管理系统

Vue 实现后端管理系统 技术选型与工具 Vue 3 + TypeScript 是当前主流的技术组合,提供更好的类型检查和开发体验。搭配 Vue Router 实现路由管理,Pinia 或 Vuex…

vue 实现管理系统

vue 实现管理系统

Vue 实现管理系统的核心步骤 项目初始化与配置 使用 Vue CLI 或 Vite 创建项目,安装基础依赖(如 vue-router、pinia/vuex、axios)。推荐选择 TypeScrip…