PHP 语言 开发简单的考勤系统

PHP阿木 发布于 2025-07-02 8 次阅读


PHP 考勤系统开发指南

考勤系统是企业管理中不可或缺的一部分,它能够帮助公司记录员工的出勤情况,确保员工按照规定的时间上班和下班。PHP 作为一种流行的服务器端脚本语言,非常适合用于开发考勤系统。本文将围绕 PHP 语言,介绍如何开发一个简单的考勤系统。

系统需求分析

在开始开发之前,我们需要明确考勤系统的基本需求:

1. 用户管理:包括员工信息的录入、修改和删除。

2. 考勤记录:记录员工的出勤时间,包括上班、下班、请假等。

3. 考勤统计:统计员工的出勤情况,生成考勤报表。

4. 权限管理:区分管理员和普通员工,管理员可以管理所有员工信息,普通员工只能查看自己的考勤信息。

技术选型

- PHP:作为后端开发语言。

- MySQL:作为数据库存储。

- HTML/CSS/JavaScript:作为前端展示。

- Bootstrap:用于快速开发响应式布局。

系统设计

数据库设计

我们需要设计数据库表结构。以下是几个主要的表:

1. 员工表(employees):存储员工的基本信息。

- id:主键,自增。

- name:员工姓名。

- department:部门。

- position:职位。

- username:登录用户名。

- password:登录密码。

2. 考勤记录表(attendance_records):存储员工的考勤信息。

- id:主键,自增。

- employee_id:外键,关联员工表。

- date:考勤日期。

- time_in:上班时间。

- time_out:下班时间。

- status:考勤状态(如:正常、迟到、早退、请假等)。

功能模块设计

1. 用户管理模块:

- 员工信息录入:管理员可以录入新员工的信息。

- 员工信息修改:管理员可以修改现有员工的信息。

- 员工信息删除:管理员可以删除员工信息。

2. 考勤记录模块:

- 上班打卡:员工可以打卡上班。

- 下班打卡:员工可以打卡下班。

- 请假申请:员工可以申请请假。

3. 考勤统计模块:

- 考勤报表:生成员工的考勤报表。

4. 权限管理模块:

- 管理员登录:管理员登录后可以访问所有功能。

- 普通员工登录:普通员工登录后只能访问自己的考勤信息。

代码实现

数据库连接

php

<?php


$servername = "localhost";


$username = "root";


$password = "";


$dbname = "attendance_system";

// 创建连接


$conn = new mysqli($servername, $username, $password, $dbname);

// 检测连接


if ($conn->connect_error) {


die("连接失败: " . $conn->connect_error);


}


?>


用户管理模块

员工信息录入

php

<?php


// 假设已经获取了表单数据


$name = $_POST['name'];


$department = $_POST['department'];


$position = $_POST['position'];


$username = $_POST['username'];


$password = password_hash($_POST['password'], PASSWORD_DEFAULT);

$sql = "INSERT INTO employees (name, department, position, username, password) VALUES ('$name', '$department', '$position', '$username', '$password')";

if ($conn->query($sql) === TRUE) {


echo "新员工信息录入成功";


} else {


echo "Error: " . $sql . "<br>" . $conn->error;


}


?>


员工信息修改

php

<?php


// 假设已经获取了表单数据


$id = $_POST['id'];


$name = $_POST['name'];


$department = $_POST['department'];


$position = $_POST['position'];

$sql = "UPDATE employees SET name='$name', department='$department', position='$position' WHERE id=$id";

if ($conn->query($sql) === TRUE) {


echo "员工信息修改成功";


} else {


echo "Error: " . $sql . "<br>" . $conn->error;


}


?>


员工信息删除

php

<?php


// 假设已经获取了要删除的员工ID


$id = $_GET['id'];

$sql = "DELETE FROM employees WHERE id=$id";

if ($conn->query($sql) === TRUE) {


echo "员工信息删除成功";


} else {


echo "Error: " . $sql . "<br>" . $conn->error;


}


?>


考勤记录模块

上班打卡

php

<?php


// 假设已经获取了员工ID和打卡时间


$employee_id = $_POST['employee_id'];


$date = date('Y-m-d');


$time_in = date('H:i:s');

$sql = "INSERT INTO attendance_records (employee_id, date, time_in, status) VALUES ('$employee_id', '$date', '$time_in', '上班')";

if ($conn->query($sql) === TRUE) {


echo "上班打卡成功";


} else {


echo "Error: " . $sql . "<br>" . $conn->error;


}


?>


下班打卡

php

<?php


// 假设已经获取了员工ID和打卡时间


$employee_id = $_POST['employee_id'];


$date = date('Y-m-d');


$time_out = date('H:i:s');

$sql = "UPDATE attendance_records SET time_out='$time_out', status='下班' WHERE employee_id=$employee_id AND date='$date' AND time_out IS NULL";

if ($conn->query($sql) === TRUE) {


echo "下班打卡成功";


} else {


echo "Error: " . $sql . "<br>" . $conn->error;


}


?>


请假申请

php

<?php


// 假设已经获取了员工ID、请假日期和请假原因


$employee_id = $_POST['employee_id'];


$date = $_POST['date'];


$reason = $_POST['reason'];

$sql = "INSERT INTO attendance_records (employee_id, date, status, reason) VALUES ('$employee_id', '$date', '请假', '$reason')";

if ($conn->query($sql) === TRUE) {


echo "请假申请成功";


} else {


echo "Error: " . $sql . "<br>" . $conn->error;


}


?>


考勤统计模块

php

<?php


// 假设已经获取了员工ID和统计日期


$employee_id = $_GET['employee_id'];


$date = $_GET['date'];

$sql = "SELECT FROM attendance_records WHERE employee_id=$employee_id AND date='$date'";

$result = $conn->query($sql);

if ($result->num_rows > 0) {


while($row = $result->fetch_assoc()) {


echo "日期: " . $row["date"]. " - 上班时间: " . $row["time_in"]. " - 下班时间: " . $row["time_out"]. " - 状态: " . $row["status"]. "<br>";


}


} else {


echo "没有找到记录";


}


?>


权限管理模块

php

<?php


// 假设已经获取了用户名和密码


$username = $_POST['username'];


$password = $_POST['password'];

$sql = "SELECT FROM employees WHERE username='$username' AND password='$password'";

$result = $conn->query($sql);

if ($result->num_rows > 0) {


$row = $result->fetch_assoc();


if ($row['position'] == '管理员') {


// 管理员登录


} else {


// 普通员工登录


}


} else {


echo "用户名或密码错误";


}


?>


总结

本文介绍了如何使用 PHP 语言开发一个简单的考勤系统。通过以上代码示例,我们可以看到如何实现用户管理、考勤记录、考勤统计和权限管理等功能。这只是一个基础版本,实际应用中可能需要更多的功能和优化。希望本文能对您有所帮助。