From 2675b1e137ea095a2a13dbfd25d1b01dc8a7c964 Mon Sep 17 00:00:00 2001 From: M_Viper Date: Sun, 10 Mar 2024 15:23:12 +0000 Subject: [PATCH] Dateien nach "includes" hochladen --- includes/add_article.php | 117 +++++++++++++++++++++++++++++++ includes/add_article_form.php | 128 ++++++++++++++++++++++++++++++++++ includes/database.php | 13 ++++ includes/upload.php | 44 ++++++++++++ 4 files changed, 302 insertions(+) create mode 100644 includes/add_article.php create mode 100644 includes/add_article_form.php create mode 100644 includes/database.php create mode 100644 includes/upload.php diff --git a/includes/add_article.php b/includes/add_article.php new file mode 100644 index 0000000..a62b07c --- /dev/null +++ b/includes/add_article.php @@ -0,0 +1,117 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + // Überprüfen Sie, ob eine Datei hochgeladen wurde + if (isset($_FILES["excel_file"]) && $_FILES["excel_file"]["error"] == UPLOAD_ERR_OK) { + // Excel-Verarbeitungslogik + $inputFileName = $_FILES["excel_file"]["tmp_name"]; + if (!file_exists($inputFileName)) { + die("Die hochgeladene Datei existiert nicht."); + } + + try { + require_once '../vendor/autoload.php'; // Include autoload file for PhpSpreadsheet + $spreadsheet = \PhpOffice\PhpSpreadsheet\IOFactory::load($inputFileName); + $sheetData = $spreadsheet->getActiveSheet()->toArray(null, true, true, true); + + // Durchlaufen Sie die Zeilen der Excel-Datei und fügen Sie die Daten in die Datenbank ein + foreach ($sheetData as $row) { + // Debugging-Ausgabe + var_dump($row); + + // Weitere Verarbeitung... + $manufacturer = $row['A']; + $set_name = $row['B']; + $article_number = $row['C']; + $ean_barcode = $row['D']; + $part1 = $row['E']; + $part1_ean = $row['F']; + $part2 = $row['G']; + $part2_ean = $row['H']; + $part3 = $row['I']; + $part3_ean = $row['J']; + $part4 = $row['K']; + $part4_ean = $row['L']; + $quantity = isset($row['M']) ? $row['M'] : 0; // Setze quantity auf 0, wenn sie leer ist + + // Zählen Sie die Anzahl der Pakete + $packageCount = 0; + if (!empty($part1)) $packageCount++; + if (!empty($part2)) $packageCount++; + if (!empty($part3)) $packageCount++; + if (!empty($part4)) $packageCount++; + + // Überprüfen, ob die Artikelnummer bereits vorhanden ist + $stmt_check = $pdo->prepare("SELECT article_number FROM articles WHERE article_number = ?"); + $stmt_check->execute([$article_number]); + $existing_row = $stmt_check->fetch(); + + if (!$existing_row) { + // Führen Sie die Datenbankoperationen durch, um die Daten einzufügen + $stmt_insert = $pdo->prepare("INSERT INTO articles (manufacturer, set_name, article_number, ean_barcode, part1, part1_ean, part2, part2_ean, part3, part3_ean, part4, part4_ean, quantity) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); + $stmt_insert->execute([$manufacturer, $set_name, $article_number, $ean_barcode, $part1, $part1_ean, $part2, $part2_ean, $part3, $part3_ean, $part4, $part4_ean, $quantity]); + } else { + echo "Die Artikelnummer $article_number existiert bereits in der Datenbank."; + } + } + } catch (\Throwable $e) { + // Fehlerbehandlung beim Lesen der Excel-Datei + die("Fehler beim Lesen der Excel-Datei: " . $e->getMessage()); + } + } else { + // Verarbeiten Sie die Daten aus dem Formular + $manufacturer = $_POST["manufacturer"]; + $set_name = $_POST["set_name"]; + $article_number = $_POST["article_number"]; + $ean_barcode = $_POST["ean_barcode"]; + $part1 = $_POST["part1"]; + $part1_ean = $_POST["part1_ean"]; + $part2 = $_POST["part2"]; + $part2_ean = $_POST["part2_ean"]; + $part3 = $_POST["part3"]; + $part3_ean = $_POST["part3_ean"]; + $part4 = $_POST["part4"]; + $part4_ean = $_POST["part4_ean"]; + $quantity = isset($_POST["quantity"]) ? $_POST["quantity"] : 0; // Setze quantity auf 0, wenn sie leer ist + + // Zählen Sie die Anzahl der Pakete + $packageCount = 0; + if (!empty($part1)) $packageCount++; + if (!empty($part2)) $packageCount++; + if (!empty($part3)) $packageCount++; + if (!empty($part4)) $packageCount++; + + // Überprüfen, ob die Artikelnummer bereits vorhanden ist + $stmt_check = $pdo->prepare("SELECT article_number FROM articles WHERE article_number = ?"); + $stmt_check->execute([$article_number]); + $existing_row = $stmt_check->fetch(); + + if (!$existing_row) { + // Führen Sie die Datenbankoperationen durch, um die Daten einzufügen + $stmt_insert = $pdo->prepare("INSERT INTO articles (manufacturer, set_name, article_number, ean_barcode, part1, part1_ean, part2, part2_ean, part3, part3_ean, part4, part4_ean, quantity) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); + $stmt_insert->execute([$manufacturer, $set_name, $article_number, $ean_barcode, $part1, $part1_ean, $part2, $part2_ean, $part3, $part3_ean, $part4, $part4_ean, $quantity]); + } else { + echo "Die Artikelnummer $article_number existiert bereits in der Datenbank."; + } + } + + // Weiterleiten oder eine Bestätigungsmeldung anzeigen + header("Location: ../public/admin.php"); + exit(); + } catch (PDOException $e) { + // Fehler bei der Datenbankverbindung oder bei der Datenbankoperation + die("Database error: " . $e->getMessage()); + } catch (\PhpOffice\PhpSpreadsheet\Reader\Exception $e) { + // Fehler beim Lesen der Excel-Datei + die("Excel error: " . $e->getMessage()); + } +} +?> diff --git a/includes/add_article_form.php b/includes/add_article_form.php new file mode 100644 index 0000000..5ccff23 --- /dev/null +++ b/includes/add_article_form.php @@ -0,0 +1,128 @@ + + + + + + + Artikel hinzufügen + + + + + +
+

Neuen Artikel hinzufügen

+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+

Einzelteile

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+ +
+ + +
+
+ +
+ + +
+
+ +
+
+
+ + + diff --git a/includes/database.php b/includes/database.php new file mode 100644 index 0000000..1287b4f --- /dev/null +++ b/includes/database.php @@ -0,0 +1,13 @@ +connect_error) { + die("Connection failed: " . $conn->connect_error); +} +?> diff --git a/includes/upload.php b/includes/upload.php new file mode 100644 index 0000000..a3c3a9c --- /dev/null +++ b/includes/upload.php @@ -0,0 +1,44 @@ +getActiveSheet(); + + foreach ($worksheet->getRowIterator() as $row) { + $cellIterator = $row->getCellIterator(); + $cellIterator->setIterateOnlyExistingCells(FALSE); + + $data = []; + foreach ($cellIterator as $cell) { + $data[] = $cell->getValue(); + } + + // Verarbeiten Sie die Daten hier und fügen Sie die Artikel hinzu + // Beispiel: Fügen Sie die Artikel zur Datenbank hinzu + // $manufacturer = $data[1]; + // $article_number = $data[2]; + // ... + + echo "Article added: " . implode(", ", $data) . "
"; + } + } else { + echo "Sorry, there was an error uploading your file."; + } + } +} +?>