First Commit
This commit is contained in:
366
html/sternwarte/intern/anmeld/php/anmeldDB.php
Normal file
366
html/sternwarte/intern/anmeld/php/anmeldDB.php
Normal file
@@ -0,0 +1,366 @@
|
||||
<?php
|
||||
# Hier werden die Anfragen vom Javascript verarbeitet und die
|
||||
# Datenbank bedient
|
||||
|
||||
include '../../../config_stern.php';
|
||||
include '../../../phpmailer/dosendmail.php';
|
||||
|
||||
$table = 'SoFue2';
|
||||
|
||||
// Holen der Einträge in der anmelde-Datenbank für den selektierten Tag
|
||||
// Parameter
|
||||
// $special -> was muss geholt werden
|
||||
// $date -> Datum, für das geholt wird
|
||||
//
|
||||
// Return:
|
||||
// Array mit den Einträgen
|
||||
function getAnmeldungenNew($special, $date)
|
||||
{
|
||||
global $db;
|
||||
$retur = [];
|
||||
$retur['error'] = false;
|
||||
$retur['errortext'] = '';
|
||||
$erg = array();
|
||||
if ($special == 'total') {
|
||||
$sql_stmt = "SELECT * FROM anmeldungen";
|
||||
} else if ($special == 'all') {
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE name != '-'";
|
||||
} else if ($special == 'abgesagt') {
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE abgesagt=1 AND name != '-'";
|
||||
} else if ($special == 'nichtda') {
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE DATE_ADD(DATE(fdatum),INTERVAL 1 DAY)<=DATE(NOW()) AND teilgenommen = 0 AND name != '-'";
|
||||
} else if ($special == 'zualt') {
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE DATE_ADD(DATE(fdatum),INTERVAL $date DAY)<=DATE(NOW()) AND name != '-'";
|
||||
} else if ($special == 'alllater'){
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE fdatum > '$date' AND name != '-' ORDER BY fdatum";
|
||||
} else if ($special == 'normal'){
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE fdatum = '$date'";
|
||||
} else {
|
||||
$retur['error'] = 'false';
|
||||
$retur['errortext'] = 'Falsches SELECT Statement!';
|
||||
$retur['data'] = [];
|
||||
return $retur;
|
||||
}
|
||||
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
foreach($row as $key => $value) {
|
||||
$entry[$key] = $value;
|
||||
}
|
||||
$erg[] = $entry;
|
||||
}
|
||||
$retur['data'] = $erg;
|
||||
return $retur;
|
||||
}
|
||||
|
||||
// Holen der Einträge in der anmelde-Datenbank für den selektierten Tag
|
||||
// Parameter
|
||||
// $special -> was muss geholt werden
|
||||
// $date -> Datum, für das geholt wird
|
||||
//
|
||||
// Return:
|
||||
// Array mit den Einträgen
|
||||
function getSonderNew($special, $date)
|
||||
{
|
||||
global $db;
|
||||
$retur = [];
|
||||
$retur['error'] = false;
|
||||
$retur['errortext'] = '';
|
||||
$erg = array();
|
||||
/* if ($special == 'total') {
|
||||
$sql_stmt = "SELECT * FROM anmeldungen";
|
||||
} else if ($special == 'all') {
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE name != '-'";
|
||||
} else if ($special == 'abgesagt') {
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE abgesagt=1 AND name != '-'";
|
||||
} else if ($special == 'nichtda') {
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE DATE_ADD(DATE(fdatum),INTERVAL 1 DAY)<=DATE(NOW()) AND teilgenommen = 0 AND name != '-'";
|
||||
} else if ($special == 'zualt') {
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE DATE_ADD(DATE(fdatum),INTERVAL $date DAY)<=DATE(NOW()) AND name != '-'";
|
||||
} else
|
||||
*/ if ($special == 'alllater'){
|
||||
$sql_stmt = "SELECT * FROM SoFue2 WHERE wtermin > '$date' ORDER BY wtermin";
|
||||
// } else if ($special == 'normal'){
|
||||
// $sql_stmt = "SELECT * FROM anmeldungen WHERE fdatum = '$date'";
|
||||
} else {
|
||||
$retur['error'] = 'false';
|
||||
$retur['errortext'] = 'Falsches SELECT Statement!';
|
||||
$retur['data'] = [];
|
||||
return $retur;
|
||||
}
|
||||
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
foreach($row as $key => $value) {
|
||||
$entry[$key] = $value;
|
||||
}
|
||||
$erg[] = $entry;
|
||||
}
|
||||
$retur['data'] = $erg;
|
||||
return $retur;
|
||||
}
|
||||
|
||||
// Holen der Einträge in der anmelde-Datenbank für den selektierten Tag
|
||||
// Parameter
|
||||
// $date -> so für dieses Datum die Einträge holen
|
||||
// Retunrn:
|
||||
// Array mit den Einträgen
|
||||
function getAnmeldungen($date)
|
||||
{
|
||||
global $db;
|
||||
$erg = array();
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE fdatum = '$date'";
|
||||
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
foreach($row as $key => $value) {
|
||||
$entry[$key] = $value;
|
||||
}
|
||||
$erg[] = $entry;
|
||||
}
|
||||
return $erg;
|
||||
}
|
||||
|
||||
// Daten eines Teilnehmers abholen
|
||||
// Parameter:
|
||||
// $id: Teilnehmer - ID
|
||||
// Return:
|
||||
// Dict mit allen Daten des Teilnehmers
|
||||
function getTeilnehmer($id)
|
||||
{
|
||||
global $db;
|
||||
$erg = array();
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE id='$id'";
|
||||
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
foreach ($row as $key => $value) {
|
||||
$entry[$key] = $value;
|
||||
}
|
||||
$erg[] = $entry;
|
||||
}
|
||||
return $erg;
|
||||
}
|
||||
|
||||
// Daten eines Teilnehmers abholen
|
||||
// Parameter:
|
||||
// $name: Name oder Vorname des Teilnehmers
|
||||
// Return:
|
||||
// Dict mit allen Daten des Teilnehmers
|
||||
function getTeilnehmerByName($name)
|
||||
{
|
||||
global $db;
|
||||
$erg = array();
|
||||
$sql_stmt = "SELECT * FROM anmeldungen WHERE name ='$name' || vorname = '$name'";
|
||||
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
foreach ($row as $key => $value) {
|
||||
$entry[$key] = $value;
|
||||
}
|
||||
$erg[] = $entry;
|
||||
}
|
||||
return $erg;
|
||||
}
|
||||
|
||||
// Die Daten der nächsten $soviel Führungen ab dem Datum $ab in ein Array holen
|
||||
// Parameter
|
||||
// $soviel -> so viele Einträge ab jetzt holen
|
||||
// $ab -> Startdatum
|
||||
// Retunrn:
|
||||
// Array mit allen Werte aus der Table
|
||||
function getNextFuehrungen($soviel, $ab) {
|
||||
global $db;
|
||||
$erg = array();
|
||||
// $datum_heute = date("Ymd",strtotime("-1 days"));
|
||||
$sql_sel = "SELECT * FROM fdatum1 where datum >='$ab' order by datum ASC LIMIT $soviel";
|
||||
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
foreach ($row as $key => $value) {
|
||||
$entry[$key] = $value;
|
||||
}
|
||||
$erg[] = $entry;
|
||||
}
|
||||
return $erg;
|
||||
}
|
||||
|
||||
// Das Datum der letzen Anmeldung suchen und übergeben
|
||||
// Parameter
|
||||
// $date -> Startdatum
|
||||
// Retunrn:
|
||||
// Datum der letzten Anmeldung
|
||||
function getLastAnmeldung($date) {
|
||||
global $db;
|
||||
$erg = array();
|
||||
// $datum_heute = date("Ymd",strtotime("-1 days"));
|
||||
$sql_sel = "SELECT MAX(fdatum) AS lastdate FROM anmeldungen WHERE fdatum >= '$date' and anzahl != 0";
|
||||
$result = mysqli_query($db, $sql_sel) or die(mysqli_error($db));
|
||||
$row = mysqli_fetch_row($result);
|
||||
return $row[0];
|
||||
}
|
||||
|
||||
// Bezeichnung der Gruppe für das übergeben Datum holen
|
||||
// Parameter:
|
||||
// $date -> Datum/Zeit (YYY-MM-DD HH:mm:ss), für das die Gruppe geholt werden soll
|
||||
// Return: Bezeichnung der Gruppe
|
||||
function getGroup($date) {
|
||||
global $db;
|
||||
global $db;
|
||||
$sql_stmt = "SELECT grp FROM fdates WHERE dateTime = '$date'";
|
||||
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||
$data = mysqli_fetch_assoc($result);
|
||||
return $data['grp'] ;
|
||||
}
|
||||
|
||||
// Zählen, wieviele Personen zu einem Führungstermin angemeldet sind
|
||||
// Parameter:
|
||||
// $fid -> id des Führungsdatum
|
||||
// Return: Anzahl der Personen
|
||||
function getCountsPerDate($fdate) {
|
||||
global $db;
|
||||
$sql_stmt = "SELECT SUM(anzahl) AS count FROM anmeldungen WHERE fdatum='$fdate'";
|
||||
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||
$data = mysqli_fetch_assoc($result);
|
||||
return $data['count'] ;
|
||||
}
|
||||
|
||||
function updateentries($nr,$val,$field)
|
||||
{
|
||||
global $db;
|
||||
$result = false;
|
||||
for ($i = 0; $i < count($nr); $i++) {
|
||||
$sql_stmt = "UPDATE anmeldungen SET $field=$val[0] where id=$nr[$i]";
|
||||
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
function updateCount($date, $anzahl) {
|
||||
global $db;
|
||||
$sql_stmt = "UPDATE fdatum1 SET count=count-$anzahl WHERE datum=$date AND count >0";
|
||||
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||
return $result;
|
||||
}
|
||||
|
||||
function deleteOne($id) {
|
||||
global $db;
|
||||
$sql_stmt = "DELETE FROM anmeldungen WHERE id=$id";
|
||||
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||
return $result;
|
||||
}
|
||||
|
||||
function findDoubles($dat) {
|
||||
global $db;
|
||||
$sql_stmt = "SELECT * FROM anmeldungen INNER JOIN (SELECT vorname,name FROM anmeldungen " .
|
||||
"GROUP BY vorname,name HAVING COUNT(id) > 1 ) dup ON anmeldungen.name = dup.name && anmeldungen.vorname = dup.vorname";
|
||||
$result = mysqli_query($db, $sql_stmt) or die(mysqli_error($db));
|
||||
while ($row = mysqli_fetch_assoc($result)) {
|
||||
foreach ($row as $key => $value) {
|
||||
$entry[$key] = $value;
|
||||
}
|
||||
$erg[] = $entry;
|
||||
}
|
||||
return $erg;
|
||||
}
|
||||
|
||||
function sendmymail($to, $betreff, $body, $bcc)
|
||||
{
|
||||
$absender = "noreply@sternwarte-welzheim.de";
|
||||
$lst = "";
|
||||
foreach($bcc as $b) {
|
||||
$lst = $lst . trim($b) . ',';
|
||||
}
|
||||
$lst = substr($lst,0,-1);
|
||||
|
||||
$headers = array();
|
||||
$headers[] = "MIME-Version: 1.0";
|
||||
$headers[] = "Content-type: text/plain; charset=utf-8";
|
||||
$headers[] = "From: {$absender}";
|
||||
$headers[] = "X-Mailer: PHP/" . phpversion();
|
||||
$headers[] = "Reply-To: {$absender}";
|
||||
$headers[] = "Bcc: {$lst}" . ",rxf@fuerst-stuttgart.de";
|
||||
|
||||
mail($to, $betreff, $body, implode("\r\n", $headers), "-f noreply@sternwarte-welzheim.de");
|
||||
return "OK";
|
||||
}
|
||||
|
||||
|
||||
$_POST = json_decode(file_get_contents('php://input'), true);
|
||||
|
||||
$erg = "";
|
||||
$cmd = $_POST["cmd"];
|
||||
|
||||
/*
|
||||
$x = "#-->";
|
||||
foreach ($_POST as $key => $value) {
|
||||
$x = $x . $key . " <> " . $value . "\n";
|
||||
}
|
||||
$x = $x . '# ';
|
||||
echo $x;
|
||||
var_dump($_POST);
|
||||
*/
|
||||
|
||||
switch ($cmd) {
|
||||
case 'GET_ANMELD':
|
||||
$erg = getAnmeldungen($_POST['id']);
|
||||
break;
|
||||
|
||||
case 'GET_ANMELDNEW':
|
||||
$erg = getAnmeldungenNew($_POST['special'], $_POST['date']);
|
||||
break;
|
||||
|
||||
case 'GET_SONDERNEW':
|
||||
$erg = getSonderNew($_POST['special'], $_POST['date']);
|
||||
break;
|
||||
|
||||
case 'GET_TEILN_ID':
|
||||
$erg = getTeilnehmer($_POST['id']);
|
||||
break;
|
||||
|
||||
case 'GET_TEILN_NAME':
|
||||
$erg = getTeilnehmerByName($_POST['name']);
|
||||
break;
|
||||
|
||||
case 'GET_GROUP':
|
||||
$erg = getGroup($_POST['date']);
|
||||
break;
|
||||
|
||||
case 'GET_DATES':
|
||||
$erg = getNextFuehrungen($_POST['anzahl'], $_POST['date']);
|
||||
break;
|
||||
|
||||
case 'GET_COUNTS':
|
||||
$erg = getCountsPerDate($_POST['fdate']);
|
||||
break;
|
||||
|
||||
case 'GET_LASTANMELDUNG':
|
||||
$erg = getLastAnmeldung($_POST['date']);
|
||||
break;
|
||||
|
||||
case 'UPDATE':
|
||||
$erg = "Nix gut";
|
||||
if ((count($_POST['ids']) != 0) and (count($_POST['values']) != 0)) {
|
||||
$rows = $_POST['ids'];
|
||||
$values = $_POST['values'];
|
||||
$erg = updateEntries($rows, $values, $_POST['field']);
|
||||
}
|
||||
break;
|
||||
case 'UPDATECOUNT':
|
||||
$erg = updateCount($_POST['date'], $_POST['anzahl']);
|
||||
break;
|
||||
|
||||
case 'DELETEONE':
|
||||
$erg = deleteOne($_POST['id']);
|
||||
break;
|
||||
|
||||
case 'DOUBLE':
|
||||
$erg = findDoubles($_POST['date']);
|
||||
break;
|
||||
|
||||
case 'SENDMYMAIL':
|
||||
$erg = sendmail($_POST['betreff'], $defaultabsender, $_POST['body'], [], $_POST['bcc'], $_POST['to']);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
header("Content-type: text/json;charset=utf-8");
|
||||
|
||||
echo json_encode($erg);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user