ホームページ > バックエンド開発 > PHPチュートリアル > PHP で従業員のチェックインおよびチェックアウト機能を実装するにはどうすればよいですか?

PHP で従業員のチェックインおよびチェックアウト機能を実装するにはどうすればよいですか?

WBOY
リリース: 2023-09-24 21:50:02
オリジナル
1433 人が閲覧しました

PHP で従業員のチェックインおよびチェックアウト機能を実装するにはどうすればよいですか?

PHP で従業員のチェックインおよびチェックアウト機能を実装するにはどうすればよいですか?

現代の企業では、従業員のチェックインとチェックアウトを管理することが不可欠なタスクです。従来の紙のサインイン フォームは、さまざまな電子サインイン システムに徐々に置き換えられてきました。この記事では、PHP 言語を使用して、従業員の簡単なチェックインおよびチェックアウト機能を実装する方法を紹介します。

まず、従業員情報とチェックイン記録を保存するデータベースを作成する必要があります。 MySQL またはその他のリレーショナル データベースを使用して実装できます。この記事では MySQL を例として取り上げます。

  1. データベースとテーブルの作成

まず、MySQL で「attendance」という名前のデータベースを作成し、次に「employees」という名前の従業員テーブルを作成し、チェックインとテーブルを作成します。 「checkinout」という名前のチェックアウト記録フォーム。

従業員フォームの構造は次のとおりです:

CREATE TABLE employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    position VARCHAR(100) NOT NULL
);
ログイン後にコピー

チェックインおよびチェックアウト記録フォームの構造は次のとおりです:

CREATE TABLE checkinout (
    id INT PRIMARY KEY AUTO_INCREMENT,
    employee_id INT NOT NULL,
    checkin DATETIME NOT NULL,
    checkout DATETIME
);
ログイン後にコピー
  1. PHP コードを記述する

次に、PHP 言語を使用して、従業員のチェックインおよびチェックアウト機能を実装するための簡単な Web ページを作成します。 Index.php ファイルでは、まずデータベースに接続し、テーブルをインポートする必要があります。

<?php
// 连接到数据库
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "attendance";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("连接失败: " . $conn->connect_error);
}

// 导入表格
$sql = "CREATE TABLE IF NOT EXISTS employees (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(100) NOT NULL,
    position VARCHAR(100) NOT NULL
)";

if ($conn->query($sql) === FALSE) {
    echo "创建员工表格失败: " . $conn->error;
}

$sql = "CREATE TABLE IF NOT EXISTS checkinout (
    id INT PRIMARY KEY AUTO_INCREMENT,
    employee_id INT NOT NULL,
    checkin DATETIME NOT NULL,
    checkout DATETIME
)";

if ($conn->query($sql) === FALSE) {
    echo "创建签到签退记录表格失败: " . $conn->error;
}
?>
ログイン後にコピー

次に、従業員の情報を入力するフォームを作成します。

<form action="index.php" method="post">
    <label for="name">姓名:</label>
    <input type="text" id="name" name="name" required>
    <br>
    <label for="position">职位:</label>
    <input type="text" id="position" name="position" required>
    <br>
    <input type="submit" value="添加员工">
</form>
ログイン後にコピー

「従業員を追加」ボタンをクリックすると、従業員情報がデータベースに挿入されます。

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $name = $_POST["name"];
    $position = $_POST["position"];

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

    if ($conn->query($sql) === FALSE) {
        echo "添加员工失败: " . $conn->error;
    }
}
?>
ログイン後にコピー

次に、従業員情報とサインイン ボタンとサインアウト ボタンを表示するテーブルを作成します。

<table>
    <tr>
        <th>ID</th>
        <th>姓名</th>
        <th>职位</th>
        <th>操作</th>
    </tr>
    <?php
    $sql = "SELECT * FROM employees";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        while ($row = $result->fetch_assoc()) {
            echo "<tr>";
            echo "<td>" . $row["id"] . "</td>";
            echo "<td>" . $row["name"] . "</td>";
            echo "<td>" . $row["position"] . "</td>";
            echo "<td><a href='checkinout.php?employee_id=" . $row["id"] . "'>签到/签退</a></td>";
            echo "</tr>";
        }
    } else {
        echo "<tr><td colspan='4'>暂无员工信息</td></tr>";
    }
    ?>
</table>
ログイン後にコピー

最後に、従業員のサインインおよびサインアウト機能を実装するために checkinout.php ファイルを作成する必要があります。

<?php
// 获取员工ID
$employee_id = $_GET["employee_id"];

// 如果是签到操作
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    date_default_timezone_set('Asia/Shanghai');
    $checkin = date("Y-m-d H:i:s");
    
    $sql = "INSERT INTO checkinout (employee_id, checkin) VALUES ('$employee_id', '$checkin')";
    
    if ($conn->query($sql) === FALSE) {
        echo "签到失败: " . $conn->error;
    }
}

// 如果是签退操作
if ($_SERVER["REQUEST_METHOD"] == "PUT") {
    date_default_timezone_set('Asia/Shanghai');
    $checkout = date("Y-m-d H:i:s");
    
    $sql = "UPDATE checkinout SET checkout='$checkout' WHERE employee_id='$employee_id' AND checkout IS NULL ORDER BY checkin DESC LIMIT 1";
    
    if ($conn->query($sql) === FALSE) {
        echo "签退失败: " . $conn->error;
    }
}

header("Location: index.php");
?>
ログイン後にコピー

上記のコードを通じて、簡単な従業員のチェックインおよびチェックアウト機能を実装できます。従業員が「サインイン/チェックアウト」リンクをクリックすると、チェックイン時刻とチェックアウト時刻がデータベースに記録され、従業員リストにサインインボタンとサインアウトボタンが表示されます。

この記事で提供するサンプル コードは、従業員のサインインおよびサインアウト機能を実装する簡易版にすぎず、実際には多くの詳細やセキュリティ上の考慮事項を処理する必要があることに注意してください。プロジェクト。

以上がPHP で従業員のチェックインおよびチェックアウト機能を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート