当前位置:首页 > 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 实现人员选择功能 在 Vue 中实现人员选择功能通常需要结合表单组件、列表展示和交互逻辑。以下是几种常见的实现方式: 使用下拉选择器(Select) 通过 Vue 的 v-model 绑定下…

php实现人员管理系统

php实现人员管理系统

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

php人员管理怎么实现

php人员管理怎么实现

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

vue实现人员选择

vue实现人员选择

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

uniapp 管理系统

uniapp 管理系统

开发环境搭建 安装最新版HBuilderX,确保已配置Node.js环境。创建uni-app项目时选择“默认模板”或“uni-ui项目模板”。安装必要依赖如scss、axios、pinia(状态管理)…