Ejemplo n.º 1
0
 function getObservationFromQuery($queries, $sort = "", $exactmatch = "1", $clubOnly = "True")
 {
     global $objDatabase;
     $observers = new Observers();
     $objects = new CometObjects();
     $locations = new Locations();
     $object = "";
     $sqland = 0;
     if (array_key_exists("object", $queries) && $queries["object"] != "") {
         if ($exactmatch == "1") {
             $alternative = $objects->getName($queries["object"]);
         } else {
             $objectList = $objects->getNameList($queries["object"]);
         }
         if ($object == "") {
             $object = $queries["object"];
         }
     }
     $sql = "SELECT cometobservations.* FROM cometobservations LEFT JOIN instruments on cometobservations.instrumentid=instruments.id LEFT JOIN cometobjects on cometobservations.objectid=cometobjects.id LEFT JOIN observers on cometobservations.observerid=observers.id where";
     if ($object != "") {
         if ($exactmatch == "1") {
             $sql = $sql . " (cometobjects.name = \"{$object}\")";
         } else {
             $sql = $sql . " (cometobjects.name like \"%{$object}%\"";
             if ($objectList == "") {
                 $sql = $sql . ")";
             } else {
                 while (list($key, $value) = each($objectList)) {
                     $sql = $sql . " or cometobjects.name = \"{$value}\"";
                 }
                 $sql = $sql . ")";
             }
         }
         $sqland = 1;
     }
     if (isset($queries["observer"]) && $queries["observer"] != "") {
         $observer = $queries["observer"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " cometobservations.observerid = \"{$observer}\"";
         $sqland = 1;
     }
     if (array_key_exists("instrument", $queries) && $queries["instrument"] != "") {
         $inst = $queries["instrument"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " cometobservations.instrumentid = \"{$inst}\"";
         $sqland = 1;
     }
     if (array_key_exists("mindiameter", $queries) && $queries["mindiameter"] != "") {
         $diam = $queries["mindiameter"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " instruments.diameter >= \"{$diam}\"";
         $sqland = 1;
     }
     if (array_key_exists("maxdiameter", $queries) && $queries["maxdiameter"] != "") {
         $diam = $queries["maxdiameter"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " instruments.diameter <= \"{$diam}\"";
         $sqland = 1;
     }
     if (isset($queries["location"]) && $queries["location"] != "") {
         $locs = $locations->getAllLocationsIds($queries["location"]);
         $loc = $queries["location"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " (cometobservations.locationid = \"{$locs['0']}\"";
         $i = 1;
         while ($i < count($locs)) {
             $sql = $sql . " || cometobservations.locationid = \"{$locs[$i]}\"";
             $i = $i + 1;
         }
         $sql = $sql . ") ";
         $sqland = 1;
     }
     if (array_key_exists("maxdate", $queries) && $queries["maxdate"] != "") {
         $date = $queries["maxdate"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " cometobservations.date <= \"{$date}\"";
         $sqland = 1;
     }
     if (array_key_exists("mindate", $queries) && $queries["mindate"] != "") {
         $date = $queries["mindate"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " cometobservations.date >= \"{$date}\"";
         $sqland = 1;
     }
     if (array_key_exists("description", $queries) && $queries["description"] != "") {
         $description = $queries["description"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " cometobservations.description like \"%{$description}%\"";
         $sqland = 1;
     }
     if (array_key_exists("minmag", $queries) && strcmp($queries["minmag"], "") != 0) {
         $mag = $queries["minmag"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " (cometobservations.mag > {$mag} or cometobservations.mag like {$mag})";
         $sqland = 1;
     }
     if (array_key_exists("maxmag", $queries) && strcmp($queries["maxmag"], "") != 0) {
         $mag = $queries["maxmag"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " (cometobservations.mag < {$mag} or cometobservations.mag like {$mag})";
         $sqland = 1;
     }
     if (array_key_exists("maxdc", $queries) && $queries["maxdc"] != "") {
         $dc = $queries["maxdc"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " cometobservations.dc <= {$dc}";
         $sqland = 1;
     }
     if (array_key_exists("mindc", $queries) && $queries["mindc"] != "") {
         $dc = $queries["mindc"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " cometobservations.dc >= {$dc}";
         $sqland = 1;
     }
     if (array_key_exists("maxcoma", $queries) && $queries["maxcoma"] != "") {
         $coma = $queries["maxcoma"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " cometobservations.coma <= {$coma}";
         $sqland = 1;
     }
     if (array_key_exists("mincoma", $queries) && $queries["mincoma"] != "") {
         $coma = $queries["mincoma"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " cometobservations.coma >= {$coma}";
         $sqland = 1;
     }
     if (array_key_exists("maxtail", $queries) && $queries["maxtail"] != "") {
         $tail = $queries["maxtail"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " cometobservations.tail <= {$tail}";
         $sqland = 1;
     }
     if (array_key_exists("mintail", $queries) && $queries["mintail"] != "") {
         $tail = $queries["mintail"];
         if ($sqland == 1) {
             $sql = $sql . " and";
         }
         $sql = $sql . " cometobservations.tail >= {$tail}";
         $sqland = 1;
     }
     if ($sort != "") {
         if ($sort == "inst") {
             $sort = "instruments.diameter, instruments.id";
         }
         if ($sort == "observerid") {
             $sort = "observers.name, observers.firstname";
         }
         if ($sort == "date") {
             $sort = $sort . ", time";
         } else {
             if ($sort == "objectid") {
                 $sort = "cometobjects.name";
             }
         }
         $sql = $sql . " order by {$sort}";
     }
     $sql = $sql . ";";
     $obs = $objDatabase->selectSingleArray($sql, "id");
     if (isset($obs)) {
         return $obs;
     } else {
         return null;
     }
 }