|
- <?php
- $dbhandle = mysqli_connect($dbhost.':'.$dbport,$dbuser,$dbpassword, $dbname) or
- error("Die Verbindung mit dem Datenbankserver ist fehlgeschlagen ($dbhost, $dbuser, $dbpassword): " . mysqli_error());
-
- # mysql_select_db($dbname, $dbhandle) or error("Die Verbindung mit der Datenbank $dbname ist fehlgeschlagen: " . mysqli_error());
-
- // Exportiere Daten als CSV-Datei. Setze Flag auf 1 ("exportiert")
- function
- exportCSV($gesamtexport=0,$u18=false,$from=false,$end=false,$erstellt=false) {
-
- global $exportpath;
-
- $now = time();
- if ($end) {
- $now = $end;
- }
- $year = date('Y',$now);
- $month = date('m',$now);
- $day = date('d',$now);
- $leastbirthday = ($year - 18) . "-" . $month . "-" . $day;
- $mostbirthday = ($year - 5) . "-" . $month . "-" . $day;
- $mydate = date('YmdHi', $now);
- $query = "LOCK TABLES users WRITE, admins READ";
- $result = mysql_query($query) or
- error("Konnte Tabelle users nicht locken: " . mysql_error());
- if ($erstellt) {
- $changefield = 'erstellungsdatum';
- } else {
- $changefield = 'aenderungsdatum';
- }
-
- // $from = strtotime('2017-08-31 15:57');
- // $end =$now;
-
- if ($u18) {
- $query = "SELECT * FROM users WHERE status = 0
- AND geburtsdatum > '$leastbirthday'
- AND geburtsdatum < '$mostbirthday'
- AND $changefield < $now ORDER BY $changefield ASC";
- } else {
- $query = "SELECT * FROM users WHERE status = 0
- AND geburtsdatum <= '$leastbirthday'
- AND $changefield < $now ORDER BY $changefield ASC";
- }
- if ($gesamtexport == 1)
- {
- if ($u18) {
- $query = "SELECT * FROM users WHERE
- geburtsdatum > '$leastbirthday'
- $changefield < $now ORDER BY $changefield ASC";
- } else {
- $query = "SELECT * FROM users WHERE
- geburtsdatum <= '$leastbirthday'
- $changefield < $now ORDER BY $changefield ASC";
- }
- }
- if ($from or $end) {
- print "Start: $from\nEnd: $end\nNow: $now\n";
- if ($u18) {
- $query = "SELECT * FROM users WHERE
- geburtsdatum > '$leastbirthday'
- AND $changefield < $end
- AND $changefield > $from
- ORDER BY $changefield ASC";
- } else {
- $query = "SELECT * FROM users WHERE
- geburtsdatum <= '$leastbirthday'
- AND $changefield < $end
- AND $changefield > $from
- ORDER BY $changefield ASC";
- }
- # $query = "SELECT * FROM users WHERE
- # $changefield < $end
- # AND $changefield > $from
- # ORDER BY $changefield ASC";
- print $query . "\n";
- }
-
- print "Query: $query<br/>\n";
-
- $result = mysql_query($query) or
- error("Konnte csv-Daten nicht aus der Datenbank holen: " . mysql_error());
- $numRows = mysql_num_rows($result);
- if ($u18) {
- $filename = "$exportpath/U18$mydate"."_healthmiles.csv.xls";
- } else {
- $filename = "$exportpath/$mydate"."_healthmiles.csv.xls";
- }
- print "Schreibe in $filename\n";
-
- $fileout = fopen($filename,"w+") or
- die ("Kann $filename nicht oeffnen.\n");
-
- $fields = array('anrede','titel','name','vorname','strasse','hausnummer','plz','ort',
- 'email','versnummer','erstellungsdatum','aenderungsdatum','ersteller');
- $first = true;
- $line = '';
- foreach ($fields as $field) {
- if ($first) { $first = false; } else { $line .= ";"; }
- $line .='"' . $field . '"';
- }
- $line .= "\n";
- if (!fputs($fileout, $line, strlen($line))) error("Konnte nicht schreiben");
- fflush($fileout);
- while ($row = mysql_fetch_array($result))
- {
- $first = 1;
- $line = "";
- foreach ($fields as $field)
- {
- $$field = unescape($row[$field]);
- if ($field == 'ersteller') {
- if ($$field == 0) { $ersteller = "Internet"; } else {
- $subquery = "SELECT name FROM admins WHERE userId = " . $$field;
- $subresult = mysql_query($subquery) or
- error ("Konnte Ersteller nicht aus der Datenbank holen: " . mysql_error() . ", Query: $subquery" .
- "Datenexport abgebrochen. Bitte melden sie sich beim <a href='mailto:$adminEmail'>Administrator</a> ($adminTel).");
- $myrow = mysql_fetch_array($subresult);
- $ersteller = $myrow['name'];
- }
- }
- if ($field == 'erstellungsdatum') { $erstellungsdatum = date('d.m.Y G:i:s', $erstellungsdatum); }
- if ($field == 'aenderungsdatum') { $aenderungsdatum = date('d.m.Y G:i:s', $aenderungsdatum); }
- if ($first == 1) { $first = 0; } else { $line.=";"; }
- $line .= '"' . $$field . '"';
- }
- $line .= "\n";
- if (!fputs($fileout, $line, strlen($line))) error("Konnte nicht schreiben");
- fflush($fileout);
- }
- fclose($fileout);
- if ($u18) {
- $query = "UPDATE users SET status = 1 WHERE status = 0
- AND geburtsdatum > '$leastbirthday'
- AND geburtsdatum < '$mostbirthday'
- AND $changefield < $now";
- } else {
- $query = "UPDATE users SET status = 1 WHERE status = 0
- AND geburtsdatum <= '$leastbirthday'
- AND $changefield < $now";
- }
- if (!($from && $end)) {
- $result = mysql_query($query) or error("Konnte Export-Status nicht setzen " . mysql_error());
- }
-
- $query = "UNLOCK TABLES";
- $result = mysql_query($query) or
- error("Konnte Tabelle users nicht unlocken: " . mysql_error());
- }
-
- function exportCSVselected($users, $filesuffix='datenexport')
- {
-
- global $exportpath;
-
- $now = time();
- $mydate = date('Y-m-d', $now);
- $filename = "extended/$mydate" . "_$filesuffix.xls";
-
- $fields = array('anrede','titel','name','vorname','strasse','hausnummer','plz','ort',
- 'email','versnummer','erstellungsdatum','aenderungsdatum','ersteller');
-
- $data = Array();
- /* print data */
- foreach ($users as $myUser)
- {
- $row = Array();
- $user = new user('',$myUser);
- $first = 1;
- $line = "";
- foreach ($fields as $field)
- {
- $$field = $user->$field;
- if ($field == 'ersteller') {
- if ($$field == 0) { $ersteller = "Internet"; } else {
- $subquery = "SELECT name FROM admins WHERE userId = " . $$field;
- $subresult = mysql_query($subquery) or
- error ("Konnte Ersteller nicht aus der Datenbank holen: " . mysql_error() . ", Query: $subquery");
- $myrow = mysql_fetch_array($subresult);
- $ersteller = $myrow['name'];
- }
- }
- if ($field == 'erstellungsdatum') { $erstellungsdatum = date('d.m.Y G:i:s', $erstellungsdatum); }
- if ($field == 'aenderungsdatum') { $aenderungsdatum = date('d.m.Y G:i:s', $aenderungsdatum); }
- array_push($row, $$field);
- }
- array_push($data, $row);
- }
- $spreadsheet = new Excelexport("$exportpath/" . $filename,$filesuffix,$fields,$data);
- $spreadsheet->create();
-
- return($filename);
-
- }
-
- function exportdoublettes() {
- $doublettes = checkdoublettes();
- $users = array();
- foreach ($doublettes as $row) {
- $userId = $row['userId'];
- array_push($users, $userId);
- }
- $filename = exportCSVselected($users, 'doubletten');
- return $filename;
- }
-
- function getLastExport($u18=false)
- {
- $query = "SELECT timestamp FROM userlogs WHERE aktion = 'datenexport" . ($u18?'U18':'') . "' order by timestamp DESC";
- $result = mysql_query($query) or
- error("Konnte csv-Daten nicht aus der Datenbank holen: " . mysql_error());
-
- $row = mysql_fetch_array($result);
- $lastexport = date('d.m.Y G:i:s', $row['timestamp']);
-
- return $lastexport;
- }
-
- function exportCSVU18($gesamtexport=0,$u18=false)
- {
-
- global $exportpath;
-
- $now = 1247608800; # 2009-07-15: Stichtag Start U18
- $year = date('Y',$now);
- $month = date('m',$now);
- $day = date('d',$now);
- $leastbirthday = ($year - 18) . "-" . $month . "-" . $day;
- $mostbirthday = ($year - 0) . "-" . $month . "-" . $day;
- $mydate = date('YmdHi', $now);
- $query = "LOCK TABLES users WRITE, admins READ";
- $result = mysql_query($query) or
- error("Konnte Tabelle users nicht locken: " . mysql_error());
- if ($u18) {
- $query = "SELECT * FROM users WHERE geburtsdatum >= '$leastbirthday' AND status = 1
- AND geburtsdatum < '$mostbirthday'
- AND aenderungsdatum < $now ORDER BY aenderungsdatum ASC";
- } else {
- $query = "SELECT * FROM users WHERE status = 0
- AND geburtsdatum <= '$leastbirthday'
- AND aenderungsdatum < $now ORDER BY aenderungsdatum ASC";
- }
- if ($gesamtexport == 1)
- {
- if ($u18) {
- $query = "SELECT * FROM users WHERE
- geburtsdatum > '$leastbirthday'
- aenderungsdatum < $now ORDER BY aenderungsdatum ASC";
- } else {
- $query = "SELECT * FROM users WHERE
- geburtsdatum <= '$leastbirthday'
- aenderungsdatum < $now ORDER BY aenderungsdatum ASC";
- }
- }
-
- print "Query: $query<br/>\n";
- $result = mysql_query($query) or
- error("Konnte csv-Daten nicht aus der Datenbank holen: " . mysql_error());
- $numRows = mysql_num_rows($result);
- if ($u18) {
- $filename = "$exportpath/U18$mydate"."_healthmiles.csv.xls";
- } else {
- $filename = "$exportpath/$mydate"."_healthmiles.csv.xls";
- }
-
- $fileout = fopen($filename,"w+") or
- die ("Kann $filename nicht oeffnen.\n");
- print "Filename: $filename<br/>\n";
-
- $fields = array('anrede','titel','name','vorname','strasse','hausnummer','plz','ort',
- 'email','versnummer','erstellungsdatum','aenderungsdatum','ersteller');
- $first = true;
- $line = '';
- foreach ($fields as $field) {
- if ($first) { $first = false; } else { $line .= ";"; }
- $line .='"' . $field . '"';
- }
- $line .= "\n";
- if (!fputs($fileout, $line, strlen($line))) error("Konnte nicht schreiben");
- fflush($fileout);
- while ($row = mysql_fetch_array($result))
- {
- $first = 1;
- $line = "";
- foreach ($fields as $field)
- {
- $$field = unescape($row[$field]);
- if ($field == 'ersteller') {
- if ($$field == 0) { $ersteller = "Internet"; } else {
- $subquery = "SELECT name FROM admins WHERE userId = " . $$field;
- $subresult = mysql_query($subquery) or
- error ("Konnte Ersteller nicht aus der Datenbank holen: " . mysql_error() . ", Query: $subquery" .
- "Datenexport abgebrochen. Bitte melden sie sich beim <a href='mailto:$adminEmail'>Administrator</a> ($adminTel).");
- $myrow = mysql_fetch_array($subresult);
- $ersteller = $myrow['name'];
- }
- }
- if ($field == 'erstellungsdatum') { $erstellungsdatum = date('d.m.Y G:i:s', $erstellungsdatum); }
- if ($field == 'aenderungsdatum') { $aenderungsdatum = date('d.m.Y G:i:s', $aenderungsdatum); }
- if ($first == 1) { $first = 0; } else { $line.=";"; }
- $line .= '"' . $$field . '"';
- }
- $line .= "\n";
- if (!fputs($fileout, $line, strlen($line))) error("Konnte nicht schreiben");
- fflush($fileout);
- }
- fclose($fileout);
- if ($u18) {
- $query = "UPDATE users SET status = 1 WHERE status = 0
- AND geburtsdatum >= '$leastbirthday'
- AND geburtsdatum < '$mostbirthday'
- AND aenderungsdatum < $now";
- } else {
- $query = "UPDATE users SET status = 1 WHERE status = 0
- AND geburtsdatum <= '$leastbirthday'
- AND aenderungsdatum < $now";
- }
- $result = mysql_query($query) or error("Konnte Export-Status nicht setzen " . mysql_error());
-
- $query = "UNLOCK TABLES";
- $result = mysql_query($query) or
- error("Konnte Tabelle users nicht unlocken: " . mysql_error());
- }
-
-
- function dbEscapeString($string)
- {
- global $dbhandle;
- return mysql_real_escape_string($string);
- }
-
- function dbQuery($query)
- {
-
- $result = mysql_query( $query)
- or error('Cannot commit query: ' . $query);
- return $result;
- }
- function dbNumRows($result)
- {
- return mysql_num_rows($result);
- }
-
-
- function dbFetchRow($result)
- {
- return mysql_fetch_array($result,MYSQL_ASSOC);
- }
-
-
- function dbError()
- {
- return mysql_error();
- }
-
-
- function dbFreeResult($result)
- {
- return;
- $response = null;
- if ($result) {
- $response = mysql_free_result($result);
- }
- return $result;
- }
|