Files
sternwarte_server/html/sternwarte/intern/statistik/php/statistic.php
2025-11-02 22:52:08 +01:00

267 lines
8.1 KiB
PHP
Executable File

<?php
# Hier werden die Anfragen vom Javascript verarbeitet und die
# Datenbank bedient
include '../../../config_stern.php';
$table_STA = 'StatistikJahre';
$table_STG = 'StatistikGesamt';
function getFromDbase($db, $query, $single) {
$result = mysqli_query($db,$query) or die (mysqli_error($db));
$erg = array();
if(mysqli_num_rows($result)) {
while($row = mysqli_fetch_assoc($result)) {
$erg[] = $row;
}
}
if($single == true) {
return ($erg[0]);
} else {
return($erg);
}
}
function cudDbase($db, $query) {
return(mysqli_query($db,$query) or die (mysqli_error($db)));
}
// Ein Record holen mit dem Datum/Jahr $sel von der Tabelle $table holen und komplett übermitteln
function getOneRecord($db,$sel,$gesamt) {
global $table_STG;
global $table_STA;
if ( $gesamt == false) {
$query = "select * from $table_STA where datum = '$sel'";
} else {
$query = "select * from $table_STG where jahr = '$sel'";
}
return(getFromDbase($db,$query,true));
}
// Alle Records von der übergebebn Tabell holen und übergeben
function getRecords($db, $table) {
$query = "select * from $table";
$rows = getFromDbase($db, $query, false);
return $rows;
}
function getLastDate($db) {
global $table_STA;
$response = new stdClass();
$query = "select max(year(datum)) as lastYear from $table_STA";
$rows = getFromDbase($db, $query, true);
$lastYear = $rows['lastYear'];
$query = "select * from $table_STA where year(datum) = '$lastYear'";
$rows = getFromDbase($db, $query, false);
$response->lastYear = $lastYear;
$response->fullYear = $rows;
return $response;
}
function getSum($db,$w) {
global $table_STG;
if ($w == 'Besucher') {
$query = "select sum(besucher) as sum from $table_STG";
} else {
$query = "select sum(aktivitaeten) as sum from $table_STG";
}
$rows = getFromDbase($db, $query, true);
return $rows['sum'];
}
function getGesamt($db) {
global $table_STG;
$response = new stdClass();
$response->data = getRecords($db,$table_STG);
$response->lastDate = getLastDate($db);
$response->sumB = getSum($db,'Besucher');
$response->sumA = getSum($db,'Aktivi');
return $response;
}
function getYearList($db) {
global $table_STA;
$query = "select year(datum),count(besucherNormal) from $table_STA group by year(datum) order by year(datum) desc";
$rows = getFromDbase($db, $query, false);
$erg = array();
for ($i=0; $i<count($rows); $i++) {
$erg[$i] = $rows[$i]['year(datum)'];
}
return $erg;
}
function getJahr($db,$jahr) {
global $table_STA;
global $table_STG;
$response = new stdClass();
$query = "select * from $table_STA where YEAR(datum) = $jahr order by datum";
$response->data = getFromDbase($db, $query, false);
$query = "select (sum(besucherToT)+sum(besucherSonder)+sum(besucherNormal)) as total from $table_STA where YEAR(datum) = $jahr";
$row = getFromDbase($db, $query, true);
$response->sumB = $row['total'];
$query = "select (sum(fuehrungen)+sum(techdienst)+sum(beobachtungen)) as total from $table_STA where YEAR(datum) = $jahr";
$row = getFromDbase($db, $query, true);
$response->sumA = $row['total'];
$query = "select sum(beozeit), sum(beotage) from $table_STA where YEAR(datum) = $jahr";
$row = getFromDbase($db, $query, true);
$response->sumBZ = $row['sum(beozeit)'];
$response->sumBT = $row['sum(beotage)'];
$query = "select bemerkung from $table_STG where jahr = $jahr";
$row = getFromDbase($db, $query, true);
$response->bemG = $row['bemerkung'];
return $response;
}
function createORupdateEntry($db, $post, $gesamt) {
global $table_STG;
global $table_STA;
if ($gesamt == true) {
$inhalt = getOneRecord($db, $post['jahr'],true);
// echo '#';
// print_r($post);
// print_r($inhalt);
// echo "#";
if ($inhalt == null) { // Insert !!
$query = "insert into $table_STG (aktivitaeten, besucher, bemerkung, jahr)" .
" values ('" . $post['suma'] .
"','" .$post['sumb'] .
"','" .$post['bemG'] .
"','" .$post['jahr'] .
"')";
} else {
$query = "update $table_STG set ".
"aktivitaeten='" . $post['suma'] .
"',besucher='" .$post['sumb'] .
"',bemerkung='" .$post['bemG'] .
"' where jahr='" . $post['jahr'] ."'";
"')";
}
$ret = cudDBase($db,$query);
if ($ret == true) {
return array('datum' => $post['jahr']); // Wenn OK, das Datum zurückgeben
}
} else {
$inhalt = getOneRecord($db, $post['datum'], false);
if ($inhalt == null) { // Insert !!
$query = "insert into $table_STA (fuehrungen, beobachtungen, techdienst, besucherNormal, besucherSonder, besucherToT, bemerkung, datum, beoZeit, beoTage)" .
" values ('" . $post['fueh'] .
"','" .$post['beob'] .
"','" .$post['tech'] .
"','" .$post['besN'] .
"','" .$post['besS'] .
"','" .$post['besT'] .
"','" .$post['beme'] .
"','" .$post['datum'] .
"','" .$post['beoZ'] .
"','" .$post['beoT'] .
"')";
} else {
$query = "update $table_STA set ".
"fuehrungen='" . $post['fueh'] .
"',beobachtungen ='" .$post['beob'] .
"',techdienst='" .$post['tech'] .
"',besucherNormal='" .$post['besN'] .
"',besucherSonder='" .$post['besS'] .
"',besucherToT='" .$post['besT'] .
"',bemerkung='" .$post['beme'] .
"',beoZeit='" .$post['beoZ'] .
"',beoTage='" .$post['beoT'] .
"' where datum='" . $post['datum'] ."'";
}
$ret = cudDBase($db,$query);
if ($ret == true) {
return array('datum' => $post['datum']); // Wenn OK, das Datum zurückgeben
}
}
return "# Fehler beim Schreiben der Daten !#"; // Andernfalls Fehlermeldung bringen
}
function deleteEntry($db, $id, $gesamt) {
global $table_STG;
global $table_STA;
$query = "delete from " . ($gesamt==true) ? $table_STG : $table_STA . " where id='$id'";
return(cudDbase($db, $query));
}
// Hier gehts dann los:
// Alle Paramater aus dem Ajax-Call auslesen
// Mögliche Aufrufe:
/*
* cmd=GET param=ID id=5 bringt das eine Record mit ID=5
* cmd=GET param= staus=offen bringt ALLE records mit stautus='offen' in zeitlich absteigender Reihenfoleg
*/
$erg = "";
$cmd = $_GET["cmd"];
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$cmd = $_POST["cmd"];
}
/*
$x = "# ";
foreach ($_POST as $key => $value) {
$x = $x . $key . " " . $value . "\n";
}
$x = $x . '# ';
echo $x;
*/
switch ($cmd) {
case 'GET_ONE_A':
$erg = getOneRecord($db, $_GET["datum"],false);
$ret = getOneRecord($db, substr($_GET["datum"],0,4),true);
$erg['bemG'] = $ret['bemerkung'];
break;
case 'GET_ONE_G':
$erg = getOneRecord($db, $_GET["jahr"],true);
break;
case 'GET_ALL_A':
$erg = getJahr($db, $_GET["jahr"]);
break;
case 'GET_ALL_G':
$erg = getGesamt($db);
break;
case 'GET_YEARS':
$erg = getYearList($db);
break;
case 'CRUP_A':
$erg = createORupdateEntry($db, $_POST['toInsert'], false);
break;
case 'CRUP_G':
$erg = createORupdateEntry($db, $_POST['toInsert'], true);
break;
case 'DELETE_A':
$erg = deleteEntry($db, $_GET['id'],false);
break;
case 'DELETE_G':
$erg = deleteEntry($db, $_GET['id'],false);
break;
# case 'CREATE':
# if($_POST['params'] == 'fuehrung') {
# $r = setFuehrung_findet_statt($db, $_POST['wert']);
# } else {
# createEntry($db, $_POST['entry']);
# }
# $erg = 'OK';
# break;
}
// header("Content-type: text/json;charset=utf-8");
echo json_encode($erg);
?>