📄 databasehandler.php
字号:
// Lister opp alle adresser knyttet til tidsprofiler, og henter ut k酶variabel function listAlleVarsleAdresser($uid, $tid, $sort) { // print "<p>UID: $uid - TID: $tid - GID: $gid - SORT: $sort"; $adr = NULL; $sorts = array ( 'min, gnavn', 'type', 'adresse, gnavn', 'vent, adresse' ); $querystring = ' SELECT alarmadresse.id AS adrid, adresse, type, vent, utstyrgruppe.id AS gid, utstyrgruppe.navn AS gnavn, (Utstyrgruppe.accountid = ' . addslashes($uid). ') AS min FROM Utstyrgruppe, Varsle, Alarmadresse WHERE (utstyrgruppe.id = varsle.utstyrgruppeid) AND (alarmadresse.id = varsle.alarmadresseid) AND (varsle.tidsperiodeid = ' . addslashes($tid) . ') ORDER BY ' . $sorts[$sort]; //echo '<p>' . $querystring . '<p>'; if ( $query = pg_exec($this->connection, $querystring) ) { $tot = pg_numrows($query); $row = 0; while ( $row < $tot) { $data = pg_fetch_array($query, $row, PGSQL_ASSOC); $adr[$row][0] = $data["adrid"]; $adr[$row][1] = $data["adresse"]; $adr[$row][2] = $data["type"]; $adr[$row][3] = $data["vent"]; $adr[$row][4] = $data["gid"]; $adr[$row][5] = $data["gnavn"]; $adr[$row][6] = $data["min"]; $row++; } } else { $error = new Error(2); $bruker{'errmsg'}= "Feil med datbasesp酶rring."; } return $adr; }// Lister opp alle adresser knyttet til tidsprofiler for en gitt utstyrsgruppe, // og henter ut k酶variabel function listVarsleAdresser($uid, $tid, $gid, $sort) { // print "<p>UID: $uid - TID: $tid - GID: $gid - SORT: $sort"; $adr = NULL; $sorts = array ('type, adresse', 'adresse'); $querystring = "SELECT id, adresse, type, vent FROM ( SELECT adresse, id, type FROM Alarmadresse WHERE (accountid = " . addslashes($uid) . ") ) AS adr LEFT OUTER JOIN ( SELECT vent, alarmadresseid FROM Varsle WHERE (tidsperiodeid = " . addslashes($tid) . ") AND (utstyrgruppeid = " . addslashes($gid) . ") ) AS periode ON (adr.id = periode.alarmadresseid) ORDER BY " . $sorts[$sort]; if ( $query = pg_exec($this->connection, $querystring) ) { $tot = pg_numrows($query); $row = 0; while ( $row < $tot) { $data = pg_fetch_array($query, $row, PGSQL_ASSOC); $adr[$row][0] = $data["id"]; $adr[$row][1] = $data["adresse"]; $adr[$row][2] = $data["type"]; $adr[$row][3] = $data["vent"]; $row++; } } else { $error = new Error(2); $bruker{'errmsg'}= "Feil med datbasesp酶rring."; } return $adr; } // Lister ut alle mulige filtermatch felter. function listMatchField($sort) { $matcher = NULL; $sorts = array ( 'name', 'matchfieldid' ); $querystring = "SELECT matchfieldid, name, descr, valuehelp " . "FROM MatchField " . "ORDER BY " . $sorts[$sort]; if ( $query = @pg_exec($this->connection, $querystring) ) { $tot = pg_numrows($query); $row = 0; while ( $row < $tot) { $data = pg_fetch_array($query, $row, PGSQL_ASSOC); $matcher[$row][0] = $data["matchfieldid"]; $matcher[$row][1] = $data["name"]; $matcher[$row][2] = $data["descr"]; $matcher[$row][3] = $data["valuehelp"]; $row++; } } else { $error = new Error(2); $bruker{'errmsg'}= "Feil med datbasesp酶rring."; } return $matcher; } // Hent ut info om et matchfield felt. function matchFieldInfo($mid) { $mf = NULL; $querystring = "SELECT name, descr, valuehelp, valueid, valuename, valuecategory, valuesort, listlimit, showlist FROM MatchField WHERE matchfieldid = " . addslashes($mid) ; if ( $query = pg_exec($this->connection, $querystring) AND pg_numrows($query) == 1 ) { $data = pg_fetch_array($query, 0, PGSQL_ASSOC); $mf[0] = $data["name"]; $mf[1] = $data["descr"]; $mf[2] = $data["valuehelp"]; $mf[3] = $data["valueid"]; $mf[4] = $data["valuename"]; $mf[5] = $data["valuecategory"]; $mf[6] = $data["valuesort"]; $mf[7] = $data["listlimit"]; $mf[8] = $data["showlist"]; } else { $error = new Error(2); $bruker{'errmsg'}= "Feil med datbasesp酶rring."; } $querystring = "SELECT operatorid " . "FROM Operator " . "WHERE matchfieldid = " . addslashes($mid) . " " . "ORDER BY operatorid "; if ( $query = @pg_exec($this->connection, $querystring) ) { $tot = pg_numrows($query); $row = 0; while ( $row < $tot) { $data = pg_fetch_array($query, $row, PGSQL_ASSOC); $operators[] = $data["operatorid"]; $row++; } } else { $error = new Error(2); $bruker{'errmsg'}= "Feil med datbasesp酶rring."; } $mf[9] = $operators; return $mf; } // Liste alle profilene til en bruker function listProfiler($uid, $sort) { $profiler = NULL; $sorts = array ( 'aktiv DESC, Brukerprofil.navn', 'Brukerprofil.navn', 'Q.antall, aktiv DESC, Brukerprofil.navn'); $querystring = "SELECT (Preference.activeprofile = Brukerprofil.id) AS aktiv,Brukerprofil.id, Brukerprofil.navn, Q.antallFROM Preference, Account, Brukerprofil LEFT OUTER JOIN (SELECT pid, count(tid) AS antall FROM (SELECT Tidsperiode.id AS tid, Brukerprofil.id AS pid FROM Tidsperiode, Brukerprofil WHERE (Brukerprofil.accountid = " . addslashes($uid) . " ) AND (Brukerprofil.id = Tidsperiode.brukerprofilid) ) AS Perioder GROUP BY Perioder.pid ) AS Q ON (Brukerprofil.id = Q.pid) WHERE (Brukerprofil.accountid = " . addslashes($uid) . ") AND (Account.id = Brukerprofil.accountid) AND (Account.id = Preference.accountid) ORDER BY " . $sorts[$sort]; //print "<p>$querystring"; if ( $query = @pg_exec($this->connection, $querystring) ) { $tot = pg_numrows($query); $row = 0; while ( $row < $tot) { $data = pg_fetch_array($query, $row, PGSQL_ASSOC); $profiler[$row][0] = $data["id"]; $profiler[$row][1] = $data["navn"]; $profiler[$row][2] = $data["antall"]; $profiler[$row][3] = $data["aktiv"]; $row++; } } else { $error = new Error(2); $bruker{'errmsg'}= "Feil med datbasesp酶rring."; } return $profiler; } // Liste alle tidsperiodene til en profil function listPerioder($pid, $sort) { $perioder = NULL; # $sorts = array ('time, minutt', 'aa, time, minutt', 'au, time, minutt', 'time, minutt'); $querystring = "SELECT Tidsper.id, Tidsper.helg, date_part('hour', Tidsper.starttid) AS time, date_part('minute', Tidsper.starttid) AS minutt, adresser.aa, grupper.au FROM ( SELECT id, helg, starttid FROM Tidsperiode WHERE (Tidsperiode.brukerprofilid = " . addslashes($pid) . ") ) AS Tidsper LEFT OUTER JOIN ( SELECT count(aid) AS aa, tid FROM ( SELECT DISTINCT Varsle.alarmadresseid AS aid, Varsle.tidsperiodeid AS tid FROM Varsle, Tidsperiode WHERE (Tidsperiode.brukerprofilid = " . addslashes($pid) . ") AND (Tidsperiode.id = Varsle.tidsperiodeid) ) AS Acount GROUP BY tid ) AS adresser ON (Tidsper.id = adresser.tid) LEFT OUTER JOIN ( SELECT count(gid) AS au, tid FROM ( SELECT DISTINCT Varsle.utstyrgruppeid AS gid, Varsle.tidsperiodeid AS tid FROM Varsle, Tidsperiode WHERE (Tidsperiode.brukerprofilid = " . addslashes($pid) . ") AND (Tidsperiode.id = Varsle.tidsperiodeid) ) AS Gcount GROUP BY tid ) AS grupper ON (Tidsper.id = grupper.tid) ORDER BY time, minutt"; if ( $query = pg_exec($this->connection, $querystring) ) { $tot = pg_numrows($query); $row = 0; while ( $row < $tot) { $data = pg_fetch_array($query, $row, PGSQL_ASSOC); $perioder[$row][0] = $data["id"]; $perioder[$row][1] = $data["helg"]; $perioder[$row][2] = $data["time"]; $perioder[$row][3] = $data["minutt"]; $perioder[$row][4] = $data["aa"]; $perioder[$row][5] = $data["au"]; $row++; } } else { $error = new Error(2); $bruker{'errmsg'}= "Feil med datbasesp酶rring."; } return $perioder; } // Denne funksjonen returnerer en liste over alle tidsperioder som kr忙sjer, alts氓 har samme tid. function listPeriodekonflikter($pid) { $konf = NULL; $querystring = "SELECT antall, dag, starttid FROM ( SELECT count(id) AS antall, dag, starttid FROM ( SELECT id, 'hverdag' AS dag, starttid FROM Tidsperiode WHERE brukerprofilid = " . addslashes($pid) . " AND ((helg = 2) OR (helg = 1) ) UNION SELECT id, 'helg' AS dag, starttid FROM Tidsperiode WHERE brukerprofilid = " . addslashes($pid) . " AND ((helg = 3) OR (helg = 1) ) ) AS subs GROUP BY dag, starttid) AS subss WHERE antall > 1"; //print "<pre>" . $querystring . "</pre>"; if ( $query = pg_exec($this->connection, $querystring) ) { $tot = pg_numrows($query); $row = 0; while ( $row < $tot) { $data = pg_fetch_array($query, $row, PGSQL_ASSOC); $konf[$row][0] = $data["antall"]; $konf[$row][1] = $data["dag"]; $konf[$row][2] = $data["starttid"]; $row++; } } else { $error = new Error(2); $bruker{'errmsg'}= "Feil med datbasesp酶rring."; } return $konf; } // Denne funksjonen returnerer alle utstyrgrupper som en Account har tilgang til, // enten man har laget den selv eller den er arvet gjennom DefaultUtstyr. function listUtstyr($uid, $sort) { $utst = NULL; $sorts = array ( 'navn,id', 'min,navn', 'ap,navn', 'af,navn'); $querystring = "SELECT * FROM (SELECT DISTINCT ON (id) id, navn, descr, min, Pcount.ap, FCount.af FROM (SELECT id, navn, descr, true AS min FROM Utstyrgruppe WHERE (accountid = " . addslashes($uid) . ") UNION SELECT Utstyrgruppe.id, Utstyrgruppe.navn, Utstyrgruppe.descr, (Utstyrgruppe.accountid = " . addslashes($uid). ") AS min FROM Utstyrgruppe, DefaultUtstyr, AccountGroup, AccountInGroup WHERE (AccountInGroup.accountid = " . addslashes($uid) . ") AND (AccountInGroup.groupid = AccountGroup.id) AND (AccountGroup.id = DefaultUtstyr.accountgroupid) AND (DefaultUtstyr.utstyrgruppeid = Utstyrgruppe.id) ) AS Tilgjengelig LEFT OUTER JOIN ( SELECT count(tidsperiodeid) AS ap, utstyrgruppeid FROM ( SELECT DISTINCT ON (utstyrgruppeid,tidsperiodeid) tidsperiodeid, utstyrgruppeid FROM ( SELECT Varsle.utstyrgruppeid, Varsle.tidsperiodeid FROM Varsle, Tidsperiode, Brukerprofil WHERE (Varsle.tidsperiodeid = Tidsperiode.id) AND (Tidsperiode.brukerprofilid = Brukerprofil.id) AND (Brukerprofil.accountid = " . addslashes($uid) . ") ) AS MinVarsle, Utstyrgruppe WHERE (Utstyrgruppe.id = MinVarsle.utstyrgruppeid) ) AS X GROUP BY utstyrgruppeid ) AS PCount ON (id = PCount.utstyrgruppeid) LEFT OUTER JOIN ( SELECT count(utstyrfilterid) AS af, utstyrgruppeid FROM ( SELECT utstyrfilterid, utstyrgruppeid FROM GruppeTilFilter, Utstyrgruppe WHERE ((Utstyrgruppe.accountid = " . addslashes($uid) . ") OR (Utstyrgruppe.accountid is null) ) AND (Utstyrgruppe.id = GruppeTilFilter.utstyrgruppeid) ) AS Y GROUP BY utstyrgruppeid ) AS FCount ON (id = FCount.utstyrgruppeid) ) jalla ORDER BY " . $sorts[$sort]; //print "<pre>" . $querystring . "</pre>"; if ( $query = pg_exec($this->connection, $querystring) ) { $tot = pg_numrows($query); $row = 0; while ( $row < $tot) { $data = pg_fetch_array($query, $row, PGSQL_ASSOC); $utst[$row][0] = $data["id"]; $utst[$row][1] = $data["navn"]; $utst[$row][2] = $data["ap"]; $utst[$row][3] = $data["af"]; $utst[$row][4] = $data["min"]; $utst[$row][5] = $data["descr"]; $row++; } } else { $error = new Error(2); $bruker{'errmsg'}= "Feil med datbasesp酶rring."; } return $utst; } // Denne funksjonen returnerer alle utstyrgrupper som en Account har rettighet til, function listUtstyrRettighet($uid, $sort) { $utst = NULL; # $sorts = array ('time, minutt', 'aa, time, minutt', 'au, time, minutt', 'time, minutt'); $querystring = "SELECT DISTINCT ON (id) id, navn, descr FROM accountingroup, Rettighet, Utstyrgruppe WHERE (AccountInGroup.accountid = " . addslashes($uid) . ") AND (AccountInGroup.groupid = Rettighet.accountgroupid) AND (Rettighet.utstyrgruppeid = Utstyrgruppe.id)"; //print "<p>$querystring"; if ( $query = pg_exec($this->connection, $querystring) ) { $tot = pg_numrows($query); $row = 0; while ( $row < $tot) { $data = pg_fetch_array($query, $row, PGSQL_ASSOC); $utst[$row][0] = $data["id"];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -