118 lines
6.1 KiB
PHP
118 lines
6.1 KiB
PHP
|
<?php
|
||
|
// Einbeziehen der Konfigurationsdatei für die Datenbankverbindung
|
||
|
$config = require_once '../config/config.php';
|
||
|
|
||
|
if ($_SERVER["REQUEST_METHOD"] == "POST") {
|
||
|
try {
|
||
|
// Verbindung zur Datenbank herstellen
|
||
|
$dsn = "mysql:host={$config['servername']};dbname={$config['database']};charset=utf8mb4";
|
||
|
$pdo = new PDO($dsn, $config['username'], $config['password']);
|
||
|
$pdo->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());
|
||
|
}
|
||
|
}
|
||
|
?>
|