diff --git a/admin/formulare/deleteForm.php b/admin/formulare/deleteForm.php new file mode 100755 index 0000000..33d32d5 --- /dev/null +++ b/admin/formulare/deleteForm.php @@ -0,0 +1,27 @@ +username; +$id=$payload->id; + +if(!isset($_GET["id"])) die("GET id fehlt"); +$formid=$_GET["id"]; + +mysqli_execute_query($db_id,"DELETE FROM `formulare-ergebnisse` WHERE `formular`=?;",[$formid]); + +foreach(mysqli_execute_query($db_id,"SELECT `id` FROM `formulare-ergebnisse` WHERE `formular`=?;",[$formid]) as $row){ + + mysqli_execute_query($db_id,"DELETE FROM `formulare-ergebnis` WHERE `ergebnisid`=?;",[$row["id"]]); +} + +mysqli_execute_query($db_id,"DELETE FROM `formulare-fields` WHERE `formular`=?;",[$formid]); + +mysqli_execute_query($db_id,"DELETE FROM `formulare` WHERE `id`=?;",[$formid]); + +echo '{"success":true}'; diff --git a/admin/formulare/ergebnisse.php b/admin/formulare/ergebnisse.php index c474ad3..a71d812 100755 --- a/admin/formulare/ergebnisse.php +++ b/admin/formulare/ergebnisse.php @@ -4,6 +4,7 @@ include("../secret.php"); include("../../vendor/autoload.php"); include("../check.php"); +include("../../formulare/get_results_lib.php"); $payload=getUserInfo(); @@ -13,21 +14,5 @@ $id=$payload->id; if(!isset($_GET["formular"])) die("GET formular fehlt"); $formular=$_GET["formular"]; -$data=[]; - -foreach(mysqli_execute_query($db_id,"SELECT `id` FROM `formulare-ergebnisse` WHERE `formular`=?;",[$formular]) as $ergebnisidrow){ - $ergebnisid=$ergebnisidrow["id"]; - $ergebnis=[]; - - foreach(mysqli_execute_query($db_id,"SELECT `name`, `value` FROM `formulare-ergebnis` WHERE ergebnisid=?;",[$ergebnisid]) as $row){ - - $ergebnis[$row["name"]]=$row["value"]; - - } - $data[]=$ergebnis; - -} - -echo json_encode($data,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE); - +echo json_encode(get_results($formular),JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE); diff --git a/admin/formulare/updateForm.php b/admin/formulare/updateForm.php index 2016f56..341be7b 100755 --- a/admin/formulare/updateForm.php +++ b/admin/formulare/updateForm.php @@ -19,3 +19,19 @@ if($data===null) die("Kein Body übertragen"); var_dump($data); +$formexists=mysqli_execute_query($db_id,"SELECT COUNT(*) FROM `formulare` WHERE `id`=?;",[$data["id"]])->fetch_assoc()["COUNT(*)"]==1; + +if(!$formexists) die("Diese Form gibt es nicht"); + + +mysqli_execute_query($db_id,"UPDATE `formulare` SET `name`=?, `minitext`=?, `public`=?, `multiple`=? WHERE `id`=?;",[$data["name"], $data["minitext"],$data["ispublic"]?1:0,$data["multiple"]?1:0,$data["id"]]); + +mysqli_execute_query($db_id,"SET FOREIGN_KEY_CHECKS = 0;"); +mysqli_execute_query($db_id,"DELETE FROM `formulare-fields` WHERE `formular`=?;",[$data["id"]]); +mysqli_execute_query($db_id,"SET FOREIGN_KEY_CHECKS = 1;"); + + +foreach($data["fields"] as $field){ + mysqli_execute_query($db_id,"INSERT INTO `formulare-fields` (`id`,`formular`,`name`,`displayname`,`value`,`displayvalue`,`placeholder`,`type`,`title`,`required`,`maxlength`,`min`,`max`,`checked`) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?);", + [isset($field["id"])?$field["id"]:null,isset($field["formular"])?$field["formular"]:$data["id"],$field["name"],$field["displayname"],$field["value"],$field["displayvalue"],$field["placeholder"],$field["type"],$field["title"],$field["required"]?1:0,$field["maxlength"],$field["min"],$field["max"],$field["checked"]?1:0]); +} diff --git a/formulare/get_results.php b/formulare/get_results.php index 245a937..600ee3c 100755 --- a/formulare/get_results.php +++ b/formulare/get_results.php @@ -2,6 +2,7 @@ header("Access-Control-Allow-Origin: *"); include("../../mysqlverbinden.php"); +include("./get_results_lib.php"); if(!isset($_GET["id"])) die("GET id fehlt"); $formularid=$_GET["id"]; @@ -10,27 +11,6 @@ if(!mysqli_execute_query($db_id,"SELECT `public` FROM `formulare` WHERE `id`=?;" die('{"error":"not_public"}'); } -function get_type_by_name($name){ - global $db_id; - return mysqli_fetch_assoc(mysqli_execute_query($db_id,"SELECT `type` FROM `formulare-fields` WHERE `name`=?;",[$name]))["type"]; -} -$data=[]; -foreach(mysqli_execute_query($db_id,"SELECT `id`,`timestamp` FROM `formulare-ergebnisse`") as $ergebnis){ - foreach(mysqli_execute_query($db_id,"SELECT `id`,`name`,`value` FROM `formulare-ergebnis` WHERE `ergebnisid`=?;",[$ergebnis["id"]]) as $row){ - $type=get_type_by_name($row["name"]); - if(str_ends_with($row["name"],'[]')){ - $row["name"]=substr($row["name"], 0, -2); - $row["value"]=json_decode($row["value"]); - } - $ergebnis["data"][]=[ - "id"=>$row["id"], - "name"=>$row["name"], - "value"=>$row["value"], - "type"=>$type - ]; - } - $data[]=$ergebnis; -} -echo json_encode($data,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); +echo json_encode(get_results($formularid),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES); diff --git a/formulare/get_results_lib.php b/formulare/get_results_lib.php new file mode 100755 index 0000000..f42e3b6 --- /dev/null +++ b/formulare/get_results_lib.php @@ -0,0 +1,29 @@ +$row["id"], + "name"=>$row["name"], + "value"=>$row["value"], + "type"=>$type + ]; + + } + $data[]=$ergebnis; + } + return $data; +} diff --git a/get_events.php b/get_events.php index 4328998..2d0e73f 100755 --- a/get_events.php +++ b/get_events.php @@ -15,6 +15,7 @@ foreach(srowforeach("SELECT * from `ritzenbergen-events`",[]) as $key => $value) $minitext=$value[5]; $link=$value[6]; $foto=$value[7]; + $formular=$value[8]; array_push($result,[ "id" => $id, "eventname" => $eventname, @@ -23,7 +24,8 @@ foreach(srowforeach("SELECT * from `ritzenbergen-events`",[]) as $key => $value) "content" => $content, "link" => $link, "foto" => $foto, - "minitext" => $minitext + "minitext" => $minitext, + "formular" => $formular ]); } diff --git a/hits.txt b/hits.txt index 301160a..f11c82a 100755 --- a/hits.txt +++ b/hits.txt @@ -1 +1 @@ -8 \ No newline at end of file +9 \ No newline at end of file