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

搜索功能

添加姓名搜索功能:

php实现人员管理系统

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结合第三方日历组件或自定义实现。以下是一种基于FullCalendar的实现方案。 安装依赖 需要安装@fullcalendar/vue及相关插件…

uniapp 管理系统

uniapp 管理系统

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

vue 实现管理系统

vue 实现管理系统

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

css制作教务管理系统

css制作教务管理系统

CSS 制作教务管理系统的关键要点 教务管理系统的界面设计需要兼顾功能性和美观性,CSS 是实现这一目标的核心技术之一。以下是关键设计要点和实现方法。 布局与结构 使用 Flexbox 或 Grid…

php人员管理怎么实现

php人员管理怎么实现

实现PHP人员管理系统的方法 数据库设计 创建数据库表存储人员信息,常见字段包括id、姓名、性别、年龄、职位、联系方式等。使用MySQL或其他关系型数据库,设计合理的表结构。 CREATE TABL…