0) { foreach ($checkgroup as $key => $element) if ($element==-1) $query0 .= $key . " as '" . $alias[$key] . "' " . ", "; //-------------------------------------------------- //$query0 .= " TIMEDIFF(fRunStop, fRunStart), "; // Only available in MySQL>4.1.1 $query0 .= "SUM(if(TIME_TO_SEC(fRunStop)-TIME_TO_SEC(fRunStart)<0, " . "TIME_TO_SEC(fRunStop)-TIME_TO_SEC(fRunStart)+24*60*60, " . "TIME_TO_SEC(fRunStop)-TIME_TO_SEC(fRunStart)))/3600 as '" . $alias["SUM(fRunTime)/3600"] . "', "; //-------------------------------------------------- $query0 .= " SUM(fNumEvents) as '" . $alias["SUM(fNumEvents)"] . "', "; $query0 .= " Min(fZenithDistance) as '" . $alias["Min(fZenithDistance)"] . "', "; $query0 .= " Max(fZenithDistance) as '" . $alias["Max(fZenithDistance)"] . "', "; $query0 .= " COUNT(*) as '# Runs' "; } else { 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 '# Runs'"; } else { $query0 .= " RunData.fRunNumber as 'Run#' "; foreach ($_GET as $key => $element) if ($_GET[$key]=="On" && $key!="fTest") if (empty($checkwhere[$key]) || $checkwhere[$key]==0) $query0 .= ", " . $key . " as '" . $alias[$key] . "' "; } } $query0 .= " FROM RunData "; $query0 .= " LEFT JOIN RunProcessStatus USING(fRunNumber,fTelescopeNumber,fFileNumber) "; foreach ($_GET as $key => $element) if (($_GET[$key]=="On" || $groups>0))// && !empty($joins[$key])) $query0 .= GetJoin($fromtable,$key); if ($_GET["fTest"]!="On") { if ($_GET["fSourceName"]!="On") $query0 .= " LEFT JOIN Source USING(fSourceKEY) "; $query0 .= " WHERE fTest='no'"; } 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)// this if clause doesn't work $query0 .= " AND "; if ($element!=-1) $query0 .= GetCheck($fromtable, $key) . "=" . $element; } if (strpos($query0, " WHERE ")==FALSE) $query0 .= " WHERE "; else $query0 .= " AND "; $query0 .= StatusQuery("fCCFileAvail", $needs); $query0 .= StatusQuery("fCaCoFileAvail", $needs); $query0 .= StatusQuery("fCaCoFileFound", $needs); $query0 .= StatusQuery("fRawFileAvail", $needs); $query0 .= StatusQuery("fDataCheckDone", $needs); $query0 .= StatusQuery("fTimingCorrection", $needs); if (!empty($_GET["fRunMin"]) && !empty($_GET["fRunMax"])) $query0 .= "RunData.fRunNumber BETWEEN " . $_GET["fRunMin"] . " AND " . $_GET["fRunMax"] . " "; /* if (!empty($_GET["fDate"])) $query0 .= " AND fRunStart REGEXP \"^" . $_GET["fDate"] . "\" "; */ if (!empty($_GET["fSourceN"])) $query0 .= " AND fSourceName REGEXP \"^" . $_GET["fSourceN"] . "\" "; if (!empty($_GET["fStartDate"])) { if (strpos(strrev($query0), " DNA ")!=0) $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) $query0 .= " AND "; $stopdate=substr($_GET["fStopDate"], 0, 10); $query0 .= " fRunStart < '" . $stopdate . " 13:00:00' "; } if (!empty($_GET["fSequenceNo"]) || $_GET["fSequenceNo"]=="0") { if (strpos(strrev($query0), " DNA ")!=0) $query0 .= " AND "; $query0 .= " fSequenceFirst = '" . $_GET["fSequenceNo"] . "' "; } 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 ($statusgroups>0) { $query0 .= " GROUP BY "; $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["fNumStart"])) $_GET["fNumStart"]=0; if (empty($_GET["fSendTxt"])) $query0 .= " LIMIT " . $_GET["fNumStart"] . ", " . $_GET["fNumResults"]; return $query0; } function InitGet($_GET) { /* if (empty($_GET["fRawFileKEY"])) $_GET["fRawFileKEY"]="Off"; */ // 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"]="20"; if (empty($_GET["fLastUpdate"])) $_GET["fLastUpdate"]="Off"; if (empty($_GET["fTest"])) $_GET["fTest"]=$first?"On":""; if (empty($_GET["fFormatVersion"])) $_GET["fFormatVersion"]="Off"; if (empty($_GET["fNumEvents"])) $_GET["fNumEvents"]=$first?"On":""; if (empty($_GET["fRunStart"])) $_GET["fRunStart"]=$first?"On":""; if (empty($_GET["fRunStop"])) $_GET["fRunStop"]="Off"; if (empty($_GET["fAzimuth"])) $_GET["fAzimuth"]="Off"; if (empty($_GET["fZenithDistance"])) $_GET["fZenithDistance"]=$first?"On":""; if (empty($_GET["fRunTypeName"])) $_GET["fRunTypeName"]=$first?"On":""; if (empty($_GET["fMagicNumberName"])) $_GET["fMagicNumberName"]="Off"; if (empty($_GET["fSourceName"])) $_GET["fSourceName"]=$first?"On":""; if (empty($_GET["fProjectName"])) $_GET["fProjectName"]="Off"; if (empty($_GET["fL1TriggerTableName"])) $_GET["fL1TriggerTableName"]="Off"; if (empty($_GET["fL2TriggerTableName"])) $_GET["fL2TriggerTableName"]="Off"; if (empty($_GET["fMeanTriggerRate"])) $_GET["fMeanTriggerRate"]=$first?"On":""; if (empty($_GET["fHvSettingsName"])) $_GET["fHvSettingsName"]="Off"; if (empty($_GET["fCalibrationScriptName"])) $_GET["fCalibrationScriptName"]="Off"; if (empty($_GET["fDiscriminatorThresholdTableName"])) $_GET["fDiscriminatorThresholdTableName"]="Off"; if (empty($_GET["fTriggerDelayTableName"])) $_GET["fTriggerDelayTableName"]="Off"; if (empty($_GET["fLightConditionsName"])) $_GET["fLightConditionsName"]="Off"; if (empty($_GET["fTestFlagName"])) $_GET["fTestFlagName"]="Off"; if (empty($_GET["fDaqStoreRate"])) $_GET["fDaqStoreRate"]="Off"; if (empty($_GET["fDaqTriggerRate"])) $_GET["fDaqTriggerRate"]="Off"; if (empty($_GET["fL2RatePresc"])) $_GET["fL2RatePresc"]="Off"; if (empty($_GET["fL2RateUnpresc"])) $_GET["fL2RateUnpresc"]="Off"; if (empty($_GET["fExcludedFDAName"])) $_GET["fExcludedFDAName"]=$first?"On":""; if (empty($_GET["fSequenceFirst"])) $_GET["fSequenceFirst"]="Off"; if (empty($_GET["fSequenceNo"])) $_GET["fSequenceNo"]=""; if (empty($_GET["fDataCheckDone"])) $_GET["fDataCheckDone"]="Off"; if (empty($_GET["fDataCheckDoneStatus"])) $_GET["fDataCheckDoneStatus"]="0"; if (empty($_GET["fCCFileAvail"])) $_GET["fCCFileAvail"]=$first?"On":""; if (empty($_GET["fCCFileAvailStatus"])) $_GET["fCCFileAvailStatus"]="0"; if (empty($_GET["fCaCoFileAvail"])) $_GET["fCaCoFileAvail"]=$first?"On":""; if (empty($_GET["fCaCoFileAvailStatus"])) $_GET["fCaCoFileAvailStatus"]="0"; if (empty($_GET["fCaCoFileFound"])) $_GET["fCaCoFileFound"]="Off"; if (empty($_GET["fCaCoFileFoundStatus"])) $_GET["fCaCoFileFoundStatus"]="0"; if (empty($_GET["fRawFileAvail"])) $_GET["fRawFileAvail"]=$first?"On":""; if (empty($_GET["fRawFileAvailStatus"])) $_GET["fRawFileAvailStatus"]="0"; if (empty($_GET["fTimingCorrection"])) $_GET["fTimingCorrection"]=$first?"On":""; if (empty($_GET["fTimingCorrectionStatus"])) $_GET["fTimingCorrectionStatus"]="0"; if (empty($_GET["fStartTime"])) $_GET["fStartTime"]="Off"; if (empty($_GET["fFailedTime"])) $_GET["fFailedTime"]="Off"; if (empty($_GET["fReturnCode"])) $_GET["fReturnCode"]="Off"; if (empty($_GET["fProgramId"])) $_GET["fProgramId"]="Off"; } function PrintForm($_GET, $host, $user, $pw, $db) { printf("