diff --git a/html/dashboard.php b/html/dashboard.php index b905572..4ca0f06 100644 --- a/html/dashboard.php +++ b/html/dashboard.php @@ -21,7 +21,34 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } // Daten abrufen -$sql="WITH user_names AS (SELECT p.id,b_single.username AS zahler,GROUP_CONCAT(b_array.username) AS personen FROM entries p LEFT JOIN users b_single ON p.user_id = b_single.id JOIN JSON_TABLE(p.person,'$[*]' COLUMNS(id INT PATH '$')) AS jt LEFT JOIN users b_array ON jt.id = b_array.id GROUP BY p.id, b_single.username) SELECT e.*, un.zahler, un.personen FROM entries e JOIN user_names un ON e.id = un.id order by date desc;"; +$sql="WITH user_names AS ( + SELECT + p.id, +b_single.username AS zahler, +GROUP_CONCAT(b_array.username) AS personen +FROM +entries p +LEFT JOIN users b_single ON p.user_id = b_single.id +JOIN JSON_TABLE(p.person, '$[*]' COLUMNS(id INT PATH '$')) AS jt +LEFT JOIN users b_array ON jt.id = b_array.id +GROUP BY +p.id, b_single.username +) +SELECT +e.*, +un.zahler, +un.personen, +c.name AS kategorie, +pm.name AS zahlweise +FROM +entries e +JOIN user_names un ON e.id = un.id +LEFT JOIN categories c ON e.category = c.category_id +LEFT JOIN payment_methods pm ON e.payment_method = pm.payment_method_id +ORDER BY +date DESC; +"; + $stmt = $pdo->prepare($sql); $stmt->execute(); $entries = $stmt->fetchAll(); @@ -35,15 +62,6 @@ $entries = $stmt->fetchAll(); - -

+
+
+ +
+
+ +
+ +
+ + +
+ +
+ +
+
+ +
+
+ +
+ +
+ +
+ +
+ + + diff --git a/html/new_entry_old.php b/html/new_entry_old.php new file mode 100644 index 0000000..72957e8 --- /dev/null +++ b/html/new_entry_old.php @@ -0,0 +1,188 @@ + + + + + + + FSCash - Neuer Eintrag + + + +Empfangene POST-Daten:

"; + echo ""; + + $date = isset($_POST['date']) ? trim($_POST['date']) : ''; + $user_id = isset($_POST['user_id']) ? trim($_POST['user_id']) : ''; + $person = isset($_POST['person']) ? $_POST['person'] : ''; + $category = isset($_POST['category']) ? trim($_POST['category']) : ''; + $subject = isset($_POST['subject']) ? trim($_POST['subject']) : ''; + $amount = isset($_POST['amount']) ? (float)$_POST['amount'] : 0.0; + $payment_method = isset($_POST['payment_method']) ? trim($_POST['payment_method']) : ''; + $jsonPersonen = json_encode($person); + + // SQL-Statement vorbereiten + try { + + $stmt = $pdo->prepare(" + INSERT INTO entries (date, user_id, person, category, subject, amount, payment_method) + VALUES (:date, :user_id, :person, :category, :subject, :amount, :payment_method) + "); + $stmt->bindParam(':date', $date); + $stmt->bindParam(':user_id', $user_id); + $stmt->bindParam(':person', $jsonPersonen); + $stmt->bindParam(':category', $category); + $stmt->bindParam(':subject', $subject); + $stmt->bindParam(':amount', $amount); + $stmt->bindParam(':payment_method', $payment_method); + + ob_start(); + $stmt->debugDumpParams(); + $output = ob_get_clean(); + echo "

SQL: " . $output . "

"; + + // Statement ausführen + $stmt->execute(); + $data_saved = "true"; + + } catch (PDOException $e) { + // Fehlerbehandlung + $data_saved = "Fehler: "; // . $e->getMessage(); + } + echo "

SQL: " . $data_saved . "

"; +} + +try { + // Alle Benutzer aus der Tabelle 'users' laden + $stmtUsers = $pdo->prepare("SELECT * FROM users order by id;"); + $stmtUsers->execute(); + $users = $stmtUsers->fetchAll(PDO::FETCH_ASSOC); + + foreach ($users as $user) { + if ($user['id'] == $_SESSION['user_id']) { + $loggedInUserId = $user['id']; + break; // Schleife beenden, sobald gefunden + } + } + + // Alle Kategorien aus der Tabelle 'categories' laden + $stmtCategories = $pdo->prepare("select * from categories order by category_id;"); + $debug = $stmtCategories->queryString; // Enthält das reine SQL-Statement + $stmtCategories->execute(); + $categories = $stmtCategories->fetchAll(PDO::FETCH_ASSOC); +} catch (PDOException $e) { + $data_saved = "Fehler: "; // . $e->getMessage(); +} + // Aktuelles Datum im Format YYYY-MM-DD erzeugen + $currentDate = date('Y-m-d'); + + +?> + "; ?> + +
+ Daten gespeichert ! + +
+ + +
+
+ + + + + +
+
+ +
+
+ +
+ +
+ + +
+ +
+ + +
+
+ +
+
+ +
+
+ +
+ +
+ +
+ + + diff --git a/update.sql b/update.sql index 5f0c62d..e9f53f7 100644 --- a/update.sql +++ b/update.sql @@ -1 +1,2 @@ -alter table entries modify column category json; +UPDATE entries SET payment_method = '1' WHERE LOWER(payment_method) = 'bar'; +alter table entries modify column payment_method int(11);