First Commit
This commit is contained in:
266
html/sternwarte/intern/statistik/php/statistic.php
Executable file
266
html/sternwarte/intern/statistik/php/statistic.php
Executable file
@@ -0,0 +1,266 @@
|
||||
<?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);
|
||||
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user