REGEXP ('^[0-9]+$') DECIMAL IN DB FIELD ONLY => ('^[0-9]*[.]?[0-9]+$') SELECT cr.cr_id, cr.cr_eid, log.logo_id, COUNT(*) AS num, cr.cr_availabletime, cr.cr_occupied, cr.cr_logintime FROM phoenix.courier AS cr, phoenix_log.log AS log WHERE cr.cr_available = '1' AND cr.hq_id = '3' AND cr.cr_locationzipcode REGEXP ('^[0-9]+$') AND log.cr_id = cr.cr_id AND log.log_createtime >= DATE_SUB(NOW(), INTERVAL 30 MINUTE) AND log.logo_id IN (3,8,11) GROUP BY cr.cr_id, log.logo_id ORDER BY cr.cr_id, log.logo_id */ $sqlquery = "SELECT cr.cr_id, cr.cr_eid, cr.hq_id, log.logo_id, COUNT(*) AS num, cr.cr_availabletime, cr.cr_occupied, cr.cr_logintime FROM phoenix.courier AS cr, phoenix_log.log AS log WHERE cr.cr_available = '1' AND cr.hq_id = '3' AND cr.cr_locationzipcode REGEXP ('^[0-9]+$') AND log.cr_id = cr.cr_id AND log.log_createtime >= DATE_SUB(NOW(), INTERVAL 30 MINUTE) AND log.logo_id IN (3,8,11) GROUP BY cr.cr_id, log.logo_id ORDER BY cr.cr_id, log.logo_id"; // echo $sqlquery . "

"; $outData = ""; $crIdArray = array(); $crEidArray = array(); $crHqIdArray = array(); $remCrId = ""; $crLogArray = array(); if ($sqlquery != "") : $result = $db->query($sqlquery); if (DB::isError($result)) die ("$PHP_SELF: " . $result->getMessage()); while ($row = $result->fetch_assoc()): $crId = $row["cr_id"]; $crEid = $row["cr_eid"]; $hqId = $row["hq_id"]; $logoId = $row["logo_id"]; $num = $row["num"]; if ($remCrId != $crId) : $crIdArray[] = $crId; $crEidArray[$crId] = $crEid; $crHqIdArray[$crId] = $hqId; endif; $remCrId = $crId; $crLogArray[$crId][$logoId] = $num; endwhile; $result->free(); // Current timestamp $currentTime = getDateTime("0"); $execTimelimit = getDateTime("datetime_plus_offset", array(0,16,0,0,0,0), $formatStr = "Y-m-d H:i:s"); $crIdArrayLen = count($crIdArray); for ($i = 0; $i < $crIdArrayLen; $i++) : $crId = $crIdArray[$i]; // Check courier is occupied $crIsOccupied = crIsOccupied($crId); if (!$crIsOccupied && ($crLogArray[$crId]["3"] == "" || $crLogArray[$crId]["3"] == "0") && ($crLogArray[$crId]["11"] == "" || $crLogArray[$crId]["11"] == "0") && ($crLogArray[$crId]["8"] != "" && $crLogArray[$crId]["8"] >= "2")) : // For output only $outData .= $crEidArray[$crId] . ($isCron ? " " : "    ") . $crLogArray[$crId]["8"] . ($isCron ? "\n" : "
"); // Update availability status updateStmt("courier","cr_id",$crId,array("cr_availabletime",$currentTime,"cr_locationzipcode","LOGOUT")); // Insert PDA command to quit application insertPDACommand($crHqIdArray[$crId], $crId, "2", "1", "", $currentTime, $execTimelimit); // Write logdata into log database writeToLogDB("143",$crHqIdArray[$crId],"","0",$crId,"","","STATUS_LOGOUT=PDA-LOGOUT DURCH AUTOREVOKES"); endif; endfor; endif; ?>