0); } // Funktion zum Verarbeiten der CSV-Datei und Rückgabe der Ergebnisse function processCSV($conn, $file) { $handle = fopen($file, "r"); $success_entries = []; $failed_entries = []; // Überspringe die erste Zeile (Header) der CSV-Datei fgetcsv($handle); while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { $name = $data[3]; // Index 3 entspricht dem "Name"-Feld in der CSV $betrag = $data[7]; // Index 7 entspricht dem "Brutto"-Feld in der CSV $betrag = str_replace(",", ".", $betrag); #echo "
"; #$Ausgabe = array($data[0], $data[3], $data[7]); // Überprüfen, ob der Mitarbeiter existiert und der Betrag positiv ist if (isMitarbeiterExist($conn, $name) && $betrag > 0) { $mitarbeiterID = getMitarbeiterID($conn, $name); $datum = $data[0]; // Index 0 entspricht dem "Datum"-Feld in der CSV // Überprüfen, ob ein identischer Eintrag bereits vorhanden ist if (!isDuplicateEntry($conn, $mitarbeiterID, $betrag, $datum)) { // Eintrag in die Tabelle dbo.kl_Einzahlungen einfügen $sql = "INSERT INTO kl_Einzahlungen (MitarbeiterID, Betrag, Datum) VALUES (?, ?, ?)"; $params = array($mitarbeiterID, $betrag, $datum); $stmt = sqlsrv_query($conn, $sql, $params); if ($stmt) { $success_entries[] = array($data[0], $data[3], $data[7], 0); } else { $failed_entries[] = array($data[0], $data[3], $data[7], 1); #die(print_r(sqlsrv_errors(), true)); } }else { #echo "Eintrag bereits vorhanden: " . print_r($data, true) . "\n"; $failed_entries[] = array($data[0], $data[3], $data[7], 2); } } else { $failed_entries[] = array($data[0], $data[3], $data[7], 3); } } fclose($handle); return ['success' => $success_entries, 'failed' => $failed_entries]; } // Funktion zum Abrufen der MitarbeiterID function getMitarbeiterID($conn, $name) { $sql = "SELECT MitarbeiterID FROM kl_Mitarbeiter WHERE Name = ? or paypalname = ?"; $params = array($name); $stmt = sqlsrv_query($conn, $sql, $params); if ($stmt === false) { die(print_r(sqlsrv_errors(), true)); } while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)) { return $row['MitarbeiterID']; } #echo $mitarbeiterid; } // Überprüfen, ob das Formular abgeschickt wurde if ($_SERVER["REQUEST_METHOD"] == "POST") { // Überprüfen, ob eine Datei hochgeladen wurde if (isset($_FILES["csv_file"]) && $_FILES["csv_file"]["error"] == 0) { $file_name = $_FILES["csv_file"]["name"]; $file_tmp = $_FILES["csv_file"]["tmp_name"]; // Datei in den Upload-Ordner verschieben move_uploaded_file($file_tmp, "uploads/" . $file_name); // CSV-Datei verarbeiten $result = processCSV($conn, "uploads/" . $file_name); echo "CSV-Datei erfolgreich verarbeitet.\n"; echo "

Auswertung

"; echo ""; foreach ($result['success'] as $eintrag){ echo ""; } foreach ($result['failed'] as $eintrag){ echo ""; } echo "
Name Datum Betrag Ergebnis
$eintrag[0] $eintrag[1] $eintrag[2] Erfolgreich gespeichert
$eintrag[0] $eintrag[1] $eintrag[2] "; if($eintrag[3] == 1){ echo "SQL Fehler"; }elseif($eintrag[3] == 2){ echo "Eintrag schon vorhanden"; }elseif($eintrag[3] == 3){ echo "Benutzer nicht gefunden"; } echo "
"; } else { echo "Fehler beim Hochladen der Datei."; } } ?> CSV Verarbeitung
" method="post" enctype="multipart/form-data">
Kein Zugriff"; } ?>