Zeitbuchungsfehler Auswertung

prepare("SELECT id,vorname, nachname FROM users WHERE zeiterfassung='1' ORDER BY nachname ASC"); $users_stmt->execute(); $users = $users_stmt->fetchAll(PDO::FETCH_ASSOC); } catch(PDOException $e) { echo "Datenbankfehler: " . $e->getMessage(); } foreach($users AS $user){ try { // Holen Sie die fehlerhaften Zeitbuchungen des Mitarbeiters aus der Datenbank $query = " SELECT DATE(timestamp_datetime) as datum, SUM(CASE WHEN timestamp_type = 'KOMMEN' THEN 1 ELSE 0 END) as kommen_count, SUM(CASE WHEN timestamp_type = 'GEHEN' THEN 1 ELSE 0 END) as gehen_count FROM timestamps WHERE employee_id = :employee_id GROUP BY DATE(timestamp_datetime) HAVING kommen_count != gehen_count"; $stmt = $pdo->prepare($query); $stmt->bindParam(':employee_id', $user["id"], PDO::PARAM_INT); $stmt->execute(); $fehlerhafteTage = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch(PDOException $e) { echo "Datenbankfehler: " . $e->getMessage(); } try { $query2 = " SELECT DATE(timestamp_datetime) AS datum, GROUP_CONCAT(timestamp_type ORDER BY timestamp_datetime) AS day_sequence FROM timestamps WHERE employee_id = :employee_id GROUP BY DATE(timestamp_datetime);"; $stmt = $pdo->prepare($query2); $stmt->bindParam(':employee_id', $user["id"], PDO::PARAM_INT); $stmt->execute(); $result = $stmt->fetchAll(); $invalidDates = []; } catch(PDOException $e) { echo "Datenbankfehler: " . $e->getMessage(); } try { $query1 = " SELECT vorname, nachname FROM users WHERE id = :employee_id ORDER BY nachname "; $stmt = $pdo->prepare($query1); $stmt->bindParam(':employee_id', $user["id"], PDO::PARAM_INT); $stmt->execute(); $userdaten = $stmt->fetchAll(PDO::FETCH_ASSOC); } catch(PDOException $e) { echo "Datenbankfehler: " . $e->getMessage(); } foreach ($userdaten as $usertag){ echo "
" . $usertag["vorname"] . " " . $usertag["nachname"] . "
"; } foreach ($result as $row) { if (!isValidSequence($row["day_sequence"])) { $invalidDates[] = $row["datum"]; } } ?>
Stunden
Datum Fehler Aktionen
Fehlerhafte Daten Anpassen