Admin Panel Formulare, Events Formular Fremdschlüssel-Spalte hinzugefügt

This commit is contained in:
R40fendt
2026-01-05 18:15:35 +01:00
parent ae2d80b47e
commit 30d6466bfb
7 changed files with 80 additions and 41 deletions

27
admin/formulare/deleteForm.php Executable file
View File

@@ -0,0 +1,27 @@
<?php
include("../../../mysqlverbinden.php");
include("../secret.php");
include("../../vendor/autoload.php");
include("../check.php");
$payload=getUserInfo();
$username=$payload->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}';

View File

@@ -4,6 +4,7 @@ include("../secret.php");
include("../../vendor/autoload.php"); include("../../vendor/autoload.php");
include("../check.php"); include("../check.php");
include("../../formulare/get_results_lib.php");
$payload=getUserInfo(); $payload=getUserInfo();
@@ -13,21 +14,5 @@ $id=$payload->id;
if(!isset($_GET["formular"])) die("GET formular fehlt"); if(!isset($_GET["formular"])) die("GET formular fehlt");
$formular=$_GET["formular"]; $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);

View File

@@ -19,3 +19,19 @@ if($data===null) die("Kein Body übertragen");
var_dump($data); 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]);
}

View File

@@ -2,6 +2,7 @@
header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Origin: *");
include("../../mysqlverbinden.php"); include("../../mysqlverbinden.php");
include("./get_results_lib.php");
if(!isset($_GET["id"])) die("GET id fehlt"); if(!isset($_GET["id"])) die("GET id fehlt");
$formularid=$_GET["id"]; $formularid=$_GET["id"];
@@ -10,27 +11,6 @@ if(!mysqli_execute_query($db_id,"SELECT `public` FROM `formulare` WHERE `id`=?;"
die('{"error":"not_public"}'); 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
];
} echo json_encode(get_results($formularid),JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
$data[]=$ergebnis;
}
echo json_encode($data,JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);

29
formulare/get_results_lib.php Executable file
View File

@@ -0,0 +1,29 @@
<?php
function get_type_by_name($name,$formularid){
global $db_id;
return mysqli_fetch_assoc(mysqli_execute_query($db_id,"SELECT `type` FROM `formulare-fields` WHERE `name`=? AND `formular`=?;",[$name,$formularid]))["type"];
}
function get_results($formularid){
global $db_id;
$data=[];
foreach(mysqli_execute_query($db_id,"SELECT `id`,`timestamp` FROM `formulare-ergebnisse` WHERE `formular`=?;",[$formularid]) 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"],$formularid);
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;
}
return $data;
}

View File

@@ -15,6 +15,7 @@ foreach(srowforeach("SELECT * from `ritzenbergen-events`",[]) as $key => $value)
$minitext=$value[5]; $minitext=$value[5];
$link=$value[6]; $link=$value[6];
$foto=$value[7]; $foto=$value[7];
$formular=$value[8];
array_push($result,[ array_push($result,[
"id" => $id, "id" => $id,
"eventname" => $eventname, "eventname" => $eventname,
@@ -23,7 +24,8 @@ foreach(srowforeach("SELECT * from `ritzenbergen-events`",[]) as $key => $value)
"content" => $content, "content" => $content,
"link" => $link, "link" => $link,
"foto" => $foto, "foto" => $foto,
"minitext" => $minitext "minitext" => $minitext,
"formular" => $formular
]); ]);
} }

View File

@@ -1 +1 @@
8 9