Comment organiser automatiquement les données de présence des employés en PHP ?

王林
Libérer: 2023-09-24 16:12:02
original
1033 Les gens l'ont consulté

Comment organiser automatiquement les données de présence des employés en PHP ?

Comment organiser automatiquement les données de présence des employés en PHP ?

Introduction au contexte :
Dans une entreprise ou une organisation, les données de présence des employés sont une information clé de gestion. Afin de faciliter la gestion et les statistiques de présence des employés, nous pouvons utiliser le langage de programmation PHP pour organiser automatiquement les données de présence des employés. Cet article expliquera comment utiliser PHP pour écrire du code permettant d'atteindre cette fonction et donnera des exemples de code spécifiques.

Étape 1 : Créer une base de données et une table de données
Tout d'abord, nous devons créer une base de données et la table de données correspondante pour stocker les données de présence des employés. Vous pouvez utiliser MySQL ou d'autres systèmes de gestion de base de données pour créer une base de données et y créer une table de données nommée « présence ». La structure du tableau de données peut être conçue dans le format suivant :

CREATE TABLE présence (attendance (
id INT(11) NOT NULL AUTO_INCREMENT,
employee_id INT(11) NOT NULL,
date DATE NOT NULL,
time_in TIME NOT NULL,
time_out TIME DEFAULT NULL,
PRIMARY KEY (id id INT(11) NOT NULL AUTO_INCREMENT,
employee_id INT (11) NON NULL,

date DATE NON NULL,

time_in TIME NOT NULL,

time_out TIME DEFAULT NULL,
    PRIMARY KEY (id)
  • ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • La table de données contient les champs suivants :
  • id : l'identifiant unique de l'enregistrement de présence, généré par auto-incrémentation ;
  • employee_id : Identifiant unique du salarié ;
  • date : date de présence

time_in : temps de travail ;

Étape 2 : Connectez-vous à la base de données
Dans le code PHP, nous devons nous connecter à la base de données et sélectionner la base de données à utiliser. Vous pouvez utiliser le code suivant pour vous connecter à la base de données :

$host = "localhost";

$db_username = "root";

$db_password = "";

$db_name = "présence";


$ conn = mysqli_connect($host, $db_username, $db_password, $db_name);

// Vérifiez si la connexion est réussie
if (!$conn) {

die("连接数据库失败:" . mysqli_connect_error());
Copier après la connexion

}
?>

Étape 3 : Interroger les données de présence
Ensuite, nous devons interroger les données de présence dans la base de données et les regrouper par employé et par date. Vous pouvez utiliser le code suivant pour y parvenir :

$sql = "SELECT Employee_id, date, time_in, time_out FROM assistance GROUP BY Employee_id, date";

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

if (mysqli_num_rows($result) > 0) {

// 输出每一条考勤记录
while ($row = mysqli_fetch_assoc($result)) {
    $employee_id = $row['employee_id'];
    $date = $row['date'];
    $time_in = $row['time_in'];
    $time_out = $row['time_out'];

    // 在这里进行考勤记录的处理,例如计算工作时长、判断是否迟到早退等
    // ...

    // 输出处理后的考勤记录
    echo "员工ID:" . $employee_id . ",日期:" . $date . ",上班时间:" . $time_in . ",下班时间:" . $time_out . "<br>";
}
Copier après la connexion

} else {

echo "没有找到任何考勤记录";
Copier après la connexion
Copier après la connexion

}

// Fermez la connexion à la base de données

mysqli_close($conn);
?>

Étape 4 : Processus données de présence
Dans Dans la partie commentaire du code ci-dessus, nous pouvons effectuer un traitement spécifique des données de présence, comme calculer les heures de travail, déterminer si vous êtes en retard et partez tôt, etc. Ceci est personnalisé en fonction des besoins spécifiques de l’entreprise. Voici un exemple simple :

// Calculer les heures de travail

fonction calculerWorkHours($time_in, $time_out)

{

// 将时间转换为时间戳
$time_in_timestamp = strtotime($time_in);
$time_out_timestamp = strtotime($time_out);

// 计算时长(分钟)
$work_hours = ($time_out_timestamp - $time_in_timestamp) / 60;

return $work_hours;
Copier après la connexion

}

// Déterminer si vous êtes en retard ou si vous partez tôt

fonction checkLateOrEarly ($time_in, $time_out)
{

$late_or_early = "";

$time_in_timestamp = strtotime($time_in);
$time_out_timestamp = strtotime($time_out);

$standard_time_in = strtotime("09:00:00");
$standard_time_out = strtotime("17:00:00");

if ($time_in_timestamp > $standard_time_in) {
    $late_or_early .= "迟到";
}

if ($time_out_timestamp < $standard_time_out) {
    $late_or_early .= "早退";
}

return $late_or_early;
Copier après la connexion

}
?>

Étape 5 : Organiser et générer les données de présence

Après avoir interrogé les enregistrements de présence et effectué le traitement associé, nous pouvons organiser les données de présence traitées dans le format requis . Et sortir sur la page ou enregistrer dans d'autres fichiers.


Vous pouvez utiliser le code suivant pour organiser et générer les données de présence :

if (mysqli_num_rows($result) > 0) {

$attendance_data = array();

while ($row = mysqli_fetch_assoc($result)) {
    $employee_id = $row['employee_id'];
    $date = $row['date'];
    $time_in = $row['time_in'];
    $time_out = $row['time_out'];

    $work_hours = calculateWorkHours($time_in, $time_out);
    $late_or_early = checkLateOrEarly($time_in, $time_out);

    $attendance_data[$employee_id][$date] = array(
        'time_in' => $time_in,
        'time_out' => $time_out,
        'work_hours' => $work_hours,
        'late_or_early' => $late_or_early
    );
}

// 输出整理后的考勤数据
foreach ($attendance_data as $employee_id => $attendance) {
    echo "员工ID:" . $employee_id . "<br>";

    foreach ($attendance as $date => $data) {
        echo "日期:" . $date . "<br>";
        echo "上班时间:" . $data['time_in'] . "<br>";
        echo "下班时间:" . $data['time_out'] . "<br>";
        echo "工作时长:" . $data['work_hours'] . "分钟<br>";
        echo "迟到或早退:" . $data['late_or_early'] . "<br>";
        echo "<br>";
    }
}
Copier après la connexion

} else {

echo "没有找到任何考勤记录";
Copier après la connexion
Copier après la connexion

}
?>

🎜 Résumé : 🎜Grâce aux étapes ci-dessus, nous pouvons utiliser le langage de programmation PHP pour organiser automatiquement les données de présence des employés. En se connectant à la base de données, en interrogeant les données de présence, en traitant les données de présence et enfin en triant le résultat, la présence des employés peut être facilement gérée et comptée. Bien entendu, ce qui précède n’est qu’un exemple simple, et la mise en œuvre spécifique peut être ajustée et personnalisée en fonction de la situation réelle. 🎜

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal