0 || ((!empty($_GET["fGroupByDate"])) && !$_GET["fGroupByDate"]==0) || $statusgroups>0) { if ($groups>0) foreach ($checkgroup as $key => $element) if ($element==-1) $query0 .= $key . " as '" . $alias[$key] . "' " . ", "; if ((!empty($_GET["fGroupByDate"])) && !$_GET["fGroupByDate"]==0) { $query0 .= " DATE_FORMAT(ADDDATE(fRunStart,Interval 12 hour), '"; switch($_GET["fGroupByDate"]) { case "Year": $query0 .= "%Y "; break; case "Month": $query0 .= "%Y-%m "; break; case "Night": $query0 .= "%Y-%m-%d "; break; } $query0 .= "') AS GroupByDate, "; } //-------------------------------------------------- $query0 .= "SUM(fRunTime)/3600 as '" . $alias["SUM(fRunTime)/3600"] . "', "; //-------------------------------------------------- $query0 .= " SUM(fNumEvents) as '" . $alias["SUM(fNumEvents)"] . "', "; $query0 .= " Min(fZenithDistanceMin) as '" . $alias["Min(fZenithDistanceMin)"] . "', "; $query0 .= " Max(fZenithDistanceMax) as '" . $alias["Max(fZenithDistanceMax)"] . "', "; $query0 .= " COUNT(*) as '# Sequ' "; if ($statusgroups>0) { foreach ($checkstatusgroup as $key => $element) if ($element==-1) $query0 .= ", (if(IsNull(" . $key . "), if(isnull(fStartTime), 'not done', if(isnull(fFailedTime),if(isnull(" . $needs[$key] . "),'not done',if(date_sub(Now(),interval 12 hour) < fStartTime,'running','crashed')),if(isnull(" . $needs[$key] . "),'not done','failed'))) ,if(" . $key . "='1970-01-01 00:00:00','dont do','done'))) as '" . $alias[$key] . "' "; // $query0 .= " (if(IsNull(" . $key . "), 'not done' ,if(" . $key . "='1970-01-01 00:00:00','dont do','done'))) as '" . $alias[$key] . "', "; $query0 .= ", COUNT(*) as '# Sequ'"; } } else { if (!empty($_GET["fSendTxt"])) $query0 .= " " . $fromtable . ".fSequenceFirst as '" . $alias["fSequenceFirst"] . "' "; else { //old version using fRunMin, fRunMax //$query0 .= " CONCAT('', Sequences.fSequenceFirst, '') "; //new version using fSequenceNo $query0 .= " CONCAT('', 'M', Sequences.fTelescopeNumber, ':', LPAD(Sequences.fSequenceFirst, 8, ' '), '') "; //$query0 .= " as " . $alias["fSequenceFirst"]; $query0 .= " as 'Tel:Sequ'"; if (!empty($_GET["fLinks"])) { $query0 .= ", CONCAT('cal'"; $query0 .= ", ' sig'"; $query0 .= ", ' star'"; $query0 .= ", ' ', 'f ' "; //$query0 .= ", ' i'"; $query0 .= ", ' rbk') "; //$query0 .= ", CONCAT('cl'"; //$query0 .= ", ' c'"; //$query0 .= ", ' sl'"; //$query0 .= ", ' s'"; //$query0 .= ", ' ', 'f ' "; //$query0 .= ", ' i'"; //$query0 .= ", ' rbk') "; $query0 .= " as 'Links'"; } } foreach ($_GET as $key => $element) if ($_GET[$key]=="On") if ($key!="fLinks" && $key!="fOff" && $key!="fOnlyOff" && $key!="fOnlySum") if (empty($checkwhere[$key]) || $checkwhere[$key]==0) $query0 .= ", " . $key . " as '" . $alias[$key] . "' "; } $query0 .= " FROM " . $fromtable; $query0 .= " LEFT JOIN SequenceProcessStatus USING(fSequenceFirst,fTelescopeNumber) "; $query0 .= " LEFT JOIN Calibration USING(fSequenceFirst,fTelescopeNumber) "; $query0 .= " LEFT JOIN Star USING(fSequenceFirst,fTelescopeNumber) "; foreach ($_GET as $key => $element) if (($_GET[$key]=="On" || $groups>0))// && !empty(GetJoin($fromtable,$key))) $query0 .= GetJoin($fromtable,$key); if ($_GET["fTest"]!="On") { if ($_GET["fSourceName"]!="On") $query0 .= " LEFT JOIN Source USING(fSourceKEY) "; $query0 .= " WHERE fTest='no'"; } if ($_GET["fOff"]=="Off") { if (strpos($query0, " WHERE ")==FALSE) $query0 .= " WHERE "; else $query0 .= " AND "; $query0 .= " NOT (fSourceName like '%Off%')"; } if ($_GET["fOnlyOff"]=="On") { if (strpos($query0, " WHERE ")==FALSE) $query0 .= " WHERE "; else $query0 .= " AND "; $query0 .= " fSourceName like '%Off%'"; } if ($_GET["fOnlySum"]=="On") { if (strpos($query0, " WHERE ")==FALSE) $query0 .= " WHERE "; else $query0 .= " AND "; $query0 .= " NOT ISNULL(fRateSumEvts) "; } foreach ($checkwhere as $key => $element) { if (empty($element) || $element<=0) continue; if (strpos($query0, " WHERE ")==FALSE) $query0 .= " WHERE "; else if ($element!=-1) if (strrpos($query0, " AND ")!=strlen($query0)-5) $query0 .= " AND "; if ($element!=-1) $query0 .= GetCheck($fromtable, $key) . "=" . $element; } if (strpos($query0, " WHERE ")==FALSE) $query0 .= " WHERE "; else $query0 .= " AND "; $query0 .= StatusQuery("fSequenceFileWritten", $needs, $timelimits); $query0 .= StatusQuery("fAllFilesAvail", $needs, $timelimits); $query0 .= StatusQuery("fCallisto", $needs, $timelimits); $query0 .= StatusQuery("fFillCallisto", $needs, $timelimits); $query0 .= StatusQuery("fStar", $needs, $timelimits); $query0 .= StatusQuery("fFillStar", $needs, $timelimits); if (!empty($_GET["fRunMin"]) && !empty($_GET["fRunMax"])) $query0 .= "Sequences.fSequenceFirst BETWEEN " . $_GET["fRunMin"] . " AND " . $_GET["fRunMax"] . " "; else $query0 = substr($query0, 0, -4); if ((!empty($_GET["fZDMin"]) || $_GET["fZDMin"]==0) && !empty($_GET["fZDMax"])) $query0 .= "AND (fZenithDistanceMin >= " . $_GET["fZDMin"] . " AND fZenithDistanceMax <= " . $_GET["fZDMax"] . ") "; if (!empty($_GET["fSourceN"])) $query0 .= " AND fSourceName REGEXP \"^" . $_GET["fSourceN"] . "\" "; if (!empty($_GET["fStartDate"])) { if (strpos(strrev($query0), " DNA ")!=0 || !strpos(strrev($query0), " DNA ")) $query0 .= " AND "; $startdate=substr($_GET["fStartDate"], 0, 10); if ($startdate=="0000-00-00") $query0 .=" fRunStart >= '" . $startdate . " 00:00:00' "; else $query0 .= " fRunStart >= ADDDATE('" . $startdate . " 13:00:00', INTERVAL -1 DAY) "; } if (!empty($_GET["fStopDate"])) { if (strpos(strrev($query0), " DNA ")!=0 || !strpos(strrev($query0), " DNA ")) $query0 .= " AND "; $stopdate=substr($_GET["fStopDate"], 0, 10); $query0 .= " fRunStart < '" . $stopdate . " 13:00:00' "; } if (!empty($_GET["fStarStart"])) { if (strpos(strrev($query0), " DNA ")!=0 || !strpos(strrev($query0), " DNA ")) $query0 .= " AND "; $starstart=substr($_GET["fStarStart"], 0, 10); $query0 .=" fStar >= '" . $starstart . " 00:00:00' "; } if (!empty($_GET["fStarStop"])) { if (strpos(strrev($query0), " DNA ")!=0 || !strpos(strrev($query0), " DNA ")) $query0 .= " AND "; $starstop=substr($_GET["fStarStop"], 0, 10); $query0 .= " fStar < '" . $starstop . " 23:59:59' "; } if ($groups>0) { $query0 .= " GROUP BY "; $num = $groups; foreach ($checkgroup as $key => $element) if ($element==-1) { $query0 .= GetCheck($fromtable,$key); if ($num-->1) $query0 .= ", "; } } if ((!empty($_GET["fGroupByDate"])) && !$_GET["fGroupByDate"]==0) if (strpos($query0, " GROUP BY ")==FALSE) $query0 .= " GROUP BY GroupByDate "; else $query0 .= ", GroupByDate "; if ($statusgroups>0) { // $query0 .= " GROUP BY "; if (strpos($query0, " GROUP BY ")==FALSE) $query0 .= " GROUP BY "; else $query0 .= ", "; $num = $statusgroups; foreach ($checkstatusgroup as $key => $element) if ($element==-1) { $query0 .= $alias[$key]; if ($num-->1) $query0 .= ", "; } } if (!empty($_GET["fSortBy"])) { $val=substr($_GET["fSortBy"], 0, -1); $query0 .= " ORDER BY " . GetTable($fromtable,$val) . " "; if (substr($_GET["fSortBy"], -1)=="-") $query0 .= "DESC"; } if (empty($_GET["fSortBy"]) && $groups==0 && $statusgroups==0) $query0 .= "ORDER BY Sequences.fSequenceFirst ASC "; if (empty($_GET["fNumStart"])) $_GET["fNumStart"]=0; if (empty($_GET["fSendTxt"])) $query0 .= " LIMIT " . $_GET["fNumStart"] . ", " . $_GET["fNumResults"]; return $query0; } function InitGet() { // Find out whether it is the first call to the php script $first = empty($_GET["fRunMin"]) && empty($_GET["fRunMax"]); if (empty($_GET["fNumResults"])) $_GET["fNumResults"]="50"; if (empty($_GET["fRunStart"])) $_GET["fRunStart"]=$first?"On":""; if (empty($_GET["fRunTime/60"])) $_GET["fRunTime/60"]=$first?"On":""; if (empty($_GET["fZenithDistanceMin"])) $_GET["fZenithDistanceMin"]=$first?"On":""; if (empty($_GET["fSourceName"])) $_GET["fSourceName"]=$first?"On":""; if (empty($_GET["fStar"])) $_GET["fStar"]=$first?"On":""; if (empty($_GET["fInhomogeneity"])) $_GET["fInhomogeneity"]=$first?"On":""; if (empty($_GET["fPSF"])) $_GET["fPSF"]=$first?"On":""; if (empty($_GET["fMeanPedRmsInner"])) $_GET["fMeanPedRmsInner"]=$first?"On":""; if (empty($_GET["fOff"])) $_GET["fOff"]=$first?"On":""; if (empty($_GET["fLinks"])) $_GET["fLinks"]=$first?"On":""; if (empty($_GET["fOnlyOff"])) $_GET["fOnlyOff"]=$first?"Off":""; if (empty($_GET["fOnlySum"])) $_GET["fOnlySum"]=$first?"Off":""; InitFindOffData($first); } function PrintForm($_GET, $host, $user, $pw, $db, $limitsmean, $limitsmin, $limitsmax, $alias) { printf("