From 91329f6c48b1e2314c617cb2486afc92f94b98a9 Mon Sep 17 00:00:00 2001 From: Florian Pesth Date: Sun, 17 Mar 2024 13:38:40 +0100 Subject: [PATCH] HelferLoeschen --- helferdb_structure_mariadb.sql | 4 ++++ html/SQL.php | 27 ++++++++--------------- html/SQL_old.php | 11 +++++----- html/testPDO.php | 39 ++++++++++++++++++++++++++-------- 4 files changed, 48 insertions(+), 33 deletions(-) diff --git a/helferdb_structure_mariadb.sql b/helferdb_structure_mariadb.sql index aff07d2..b106b24 100644 --- a/helferdb_structure_mariadb.sql +++ b/helferdb_structure_mariadb.sql @@ -36,6 +36,10 @@ CREATE TABLE `HelferLevel` ( `HelferLevel` int(11) DEFAULT NULL, `HelferLevelBeschreibung` varchar(255) DEFAULT NULL ); +INSERT INTO HelferLevel(HelferLevel, HelferLevelBeschreibung) +VALUES (1,'Orga'); +INSERT INTO HelferLevel(HelferLevel, HelferLevelBeschreibung) +VALUES (2,'Teilnehmer'); DROP TABLE IF EXISTS `Schicht`; CREATE TABLE `Schicht` ( `SchichtID` int(11) NOT NULL AUTO_INCREMENT, diff --git a/html/SQL.php b/html/SQL.php index 1d7a65e..cc7a2ef 100644 --- a/html/SQL.php +++ b/html/SQL.php @@ -340,33 +340,24 @@ function AlleSchichtenEinesHelfers($HelferID) } // FIXME -function HelferLoeschen($db_link, $HelferID, $AdminID) +function HelferLoeschen($HelferID, $AdminID) { - $HelferID = mysqli_real_escape_string($db_link, $HelferID); + $db = DB::getInstance(); + $db->prepare(__METHOD__,"Delete from Helfer where HelferID=:id"); - static $stmt = false; - static $stmt_prepared = false; - if(!$stmt_prepared) { - $stmt = $pdo->prepare("Delete from Helfer where HelferID='$HelferID'"); - $stmt_prepared = true; + $helfer = Helferdaten($HelferID); + if(count($helfer) == 1){ + $HelferName = $helfer[0]['Name']; } - $db_erg = Helferdaten($db_link, $HelferID); - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { - $HelferName = $zeile['Name']; - //echo "HelferName=$HelferName
"; - } + $schichten = AlleSchichtenEinesHelfers($HelferID); - $db_erg = AlleSchichtenEinesHelfers($db_link, $HelferID); - - $AnzahlHelferschichten = mysqli_num_rows($db_erg); + $AnzahlHelferschichten = count($schichten); if ($AnzahlHelferschichten == 0) { - $sql = "Delete from Helfer where HelferID='$HelferID'"; - $db_erg = mysqli_query($db_link, $sql); + $db_erg = $db->execute(__METHOD__,["id" => $HelferID]); if (! $db_erg) { echo "Helfer $HelferName konnte nicht gelöscht werden
"; - echo "$sql
"; return -2; } else { echo "Helfer $HelferName (HelferID:$HelferID) wurde erfolgreich geloescht
"; diff --git a/html/SQL_old.php b/html/SQL_old.php index 34c9cce..28e21a6 100644 --- a/html/SQL_old.php +++ b/html/SQL_old.php @@ -289,15 +289,14 @@ function HelferLoeschen($db_link, $HelferID, $AdminID) $HelferID = mysqli_real_escape_string($db_link, $HelferID); - $db_erg = Helferdaten($db_link, $HelferID); - while ($zeile = mysqli_fetch_array($db_erg, MYSQLI_ASSOC)) { - $HelferName = $zeile['Name']; - //echo "HelferName=$HelferName
"; + $helfer = Helferdaten($db_link, $HelferID); + if(count($helfer) == 1){ + $HelferName = $helfer[0]['Name']; } - $db_erg = AlleSchichtenEinesHelfers($db_link, $HelferID); + $schichten = AlleSchichtenEinesHelfers($db_link, $HelferID); - $AnzahlHelferschichten = mysqli_num_rows($db_erg); + $AnzahlHelferschichten = count($schichten); if ($AnzahlHelferschichten == 0) { $sql = "Delete from Helfer where HelferID='$HelferID'"; $db_erg = mysqli_query($db_link, $sql); diff --git a/html/testPDO.php b/html/testPDO.php index e69abba..632a16f 100644 --- a/html/testPDO.php +++ b/html/testPDO.php @@ -227,18 +227,38 @@ function TestAlleSchichtenEinesHelfers(){ else echo "AlleSchichtenEinesHelfers ok\n"; } +// ok function TestHelferLoeschen(){ $dbl = old\ConnectDB(); - $erg_old = old\HelferLoeschen($dbl, $HelferID, $AdminID); -var_dump($erg_old); - $erg_new = HelferLoeschen($HelferID, $AdminID); -var_dump($erg_new); -die("--\n"); - if((gettype($erg_old) != gettype($erg_new)) || ($erg_old != $erg_new)){ - echo "Old HelferLoeschen returns".var_export($erg_old, true)."\n"; - echo "New HelferLoeschen returns '".var_export($erg_new, true)."'\n"; + HelferLogin("max2@example.com", "hola234", 0); + $helfer1 = $_SESSION; + HelferLogin("max3@example.com", "hola531", 0); + $helfer2 = $_SESSION; + ob_start(); + $erg_old1 = old\HelferLoeschen($dbl, $helfer1['HelferID'],0); + $erg_new1 = HelferLoeschen($helfer2['HelferID'],0); + $schichten = AlleSchichtenEinesHelfers($helfer1['HelferID']); + foreach($schichten as $schicht) + { + HelferVonSchichtLoeschen($helfer1['HelferID'], $schicht['EinzelSchichtID']); } - else echo "HelferLoeschen ok"; + $schichten = AlleSchichtenEinesHelfers($helfer2['HelferID']); + foreach($schichten as $schicht) + { + HelferVonSchichtLoeschen($helfer2['HelferID'], $schicht['EinzelSchichtID']); + } + $erg_old2 = old\HelferLoeschen($dbl, $helfer1['HelferID'],0); + $erg_new2 = HelferLoeschen($helfer2['HelferID'],0); + ob_end_clean(); + if((gettype($erg_old1) != gettype($erg_new1)) || ($erg_old1 != $erg_new1)){ + echo "Old HelferLoeschen returns".var_export($erg_old1, true)."\n"; + echo "New HelferLoeschen returns '".var_export($erg_new1, true)."'\n"; + } + else if((gettype($erg_old2) != gettype($erg_new2)) || ($erg_old2 != $erg_new2)){ + echo "Old HelferLoeschen returns".var_export($erg_old2, true)."\n"; + echo "New HelferLoeschen returns '".var_export($erg_new2, true)."'\n"; + } + else echo "HelferLoeschen ok\n"; } // ok @@ -627,4 +647,5 @@ TestLastInsertId(); TestHelferLevel(); TestHelferVonSchichtLoeschen_SchichtID(); TestDeleteSchicht(); +TestHelferLoeschen(); ?>