Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour développer un outil de visualisation des données de présence des employés ?

Comment utiliser PHP pour développer un outil de visualisation des données de présence des employés ?

WBOY
WBOYoriginal
2023-09-25 09:25:56928parcourir

Comment utiliser PHP pour développer un outil de visualisation des données de présence des employés ?

Comment utiliser PHP pour développer un outil de visualisation des données de présence des employés ?

Dans les entreprises modernes, la gestion des présences des employés est une tâche extrêmement importante. Afin de mieux gérer et analyser la présence des employés, de nombreuses entreprises ont adopté des outils de visualisation de données pour afficher et compter les données de présence des employés. Cet article présentera comment utiliser PHP pour développer un outil de visualisation des données de présence des employés et fournira des exemples de code spécifiques.

Tout d'abord, nous devons clarifier les fonctions et les structures de données que nous souhaitons implémenter. De manière générale, les données de présence des employés comprennent des informations telles que le numéro de travail, la date, l'heure de travail, l'heure de sortie du travail, le nombre d'arrivées tardives et le nombre de départs anticipés. Nous devons stocker ces données dans une base de données et utiliser PHP pour l'interrogation et la visualisation des données.

  1. Conception de base de données

Tout d'abord, créez une base de données nommée "employee_attendance", puis créez une table de données nommée "présence" pour stocker les données de présence des employés. La structure du tableau de données est la suivante :

CREATE TABLE attendance (
    id INT PRIMARY KEY AUTO_INCREMENT,
    employee_id INT,
    date DATE,
    start_time TIME,
    end_time TIME,
    late_count INT,
    early_leave_count INT
);
  1. Saisie des données

Saisissez les données de présence correspondantes dans la base de données chaque fois qu'un employé se rend au travail ou quitte le travail. Les fonctions de saisie de données peuvent être implémentées à l'aide de formulaires HTML et de code PHP.

Exemple de code HTML :

<form action="submit_attendance.php" method="POST">
    <label for="employee_id">工号:</label>
    <input type="text" name="employee_id" id="employee_id" required>

    <label for="date">日期:</label>
    <input type="date" name="date" id="date" required>

    <label for="start_time">上班时间:</label>
    <input type="time" name="start_time" id="start_time" required>

    <label for="end_time">下班时间:</label>
    <input type="time" name="end_time" id="end_time" required>

    <label for="late_count">迟到次数:</label>
    <input type="number" name="late_count" id="late_count" min="0" required>

    <label for="early_leave_count">早退次数:</label>
    <input type="number" name="early_leave_count" id="early_leave_count" min="0" required>

    <input type="submit" value="提交">
</form>

Exemple de code PHP (submit_attendance.php) :

<?php
    $employee_id = $_POST['employee_id'];
    $date = $_POST['date'];
    $start_time = $_POST['start_time'];
    $end_time = $_POST['end_time'];
    $late_count = $_POST['late_count'];
    $early_leave_count = $_POST['early_leave_count'];

    // 连接数据库
    $conn = mysqli_connect("localhost", "root", "password", "employee_attendance");

    // 插入数据
    $query = "INSERT INTO attendance (employee_id, date, start_time, end_time, late_count, early_leave_count)
              VALUES ('$employee_id', '$date', '$start_time', '$end_time', '$late_count', '$early_leave_count')";

    mysqli_query($conn, $query);
    mysqli_close($conn);
?>
  1. Visualisation des données

Ensuite, nous utiliserons PHP et la bibliothèque Chart.js pour visualiser les données de présence des employés. Tout d'abord, nous devons obtenir les données de présence des employés à partir de la base de données et effectuer des statistiques et des regroupements selon certaines règles.

Exemple de code PHP :

<?php
    // 连接数据库
    $conn = mysqli_connect("localhost", "root", "password", "employee_attendance");

    // 查询数据
    $query = "SELECT employee_id, SUM(late_count) as total_late, SUM(early_leave_count) as total_early_leave
              FROM attendance
              GROUP BY employee_id";

    $result = mysqli_query($conn, $query);

    $attendance_data = [];
    while ($row = mysqli_fetch_assoc($result)) {
        $employee_id = $row['employee_id'];
        $total_late = $row['total_late'];
        $total_early_leave = $row['total_early_leave'];

        $attendance_data[] = [
            "employee_id" => $employee_id,
            "total_late" => $total_late,
            "total_early_leave" => $total_early_leave
        ];
    }

    mysqli_close($conn);
?>

Ensuite, nous pouvons utiliser la bibliothèque Chart.js pour créer un histogramme afin de visualiser les résultats statistiques.

Exemple de code HTML :

<!DOCTYPE html>
<html>
<head>
    <title>员工考勤数据可视化</title>
    <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
</head>
<body>
    <canvas id="attendanceChart"></canvas>

    <script>
        // 获取考勤数据
        var attendanceData = <?php echo json_encode($attendance_data); ?>;
        
        // 数据处理
        var employeeIds = [];
        var totalLateCounts = [];
        var totalEarlyLeaveCounts = [];

        attendanceData.forEach(function(data) {
            employeeIds.push(data.employee_id);
            totalLateCounts.push(data.total_late);
            totalEarlyLeaveCounts.push(data.total_early_leave);
        });

        // 创建柱状图
        var ctx = document.getElementById('attendanceChart').getContext('2d');
        var chart = new Chart(ctx, {
            type: 'bar',
            data: {
                labels: employeeIds,
                datasets: [{
                    label: '迟到次数',
                    data: totalLateCounts,
                    backgroundColor: 'rgba(255, 99, 132, 0.2)',
                    borderColor: 'rgba(255, 99, 132, 1)',
                    borderWidth: 1
                }, {
                    label: '早退次数',
                    data: totalEarlyLeaveCounts,
                    backgroundColor: 'rgba(54, 162, 235, 0.2)',
                    borderColor: 'rgba(54, 162, 235, 1)',
                    borderWidth: 1
                }]
            },
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                }
            }
        });
    </script>
</body>
</html>

Voici les étapes spécifiques et les exemples de code pour utiliser PHP pour développer un outil de visualisation des données de présence des employés. En saisissant les données et les statistiques de présence des employés et en utilisant la bibliothèque Chart.js pour la visualisation, nous pouvons avoir une compréhension plus claire de la présence des employés et fournir un soutien solide aux décisions de gestion de l'entreprise.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn