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);