Merge pull request #865 from int2001/tune_sat_records

Tweak distance-records (filter by station at join as well)
This commit is contained in:
Joerg (DJ7NT)
2024-09-03 13:59:03 +02:00
committed by GitHub

View File

@@ -31,6 +31,7 @@ class Distancerecords_model extends CI_Model {
LEFT JOIN (
SELECT *, ROW_NUMBER() OVER (PARTITION BY COL_SAT_NAME, COL_DISTANCE ORDER BY COL_TIME_ON asc) AS rn
FROM '.$this->config->item('table_name').'
WHERE station_id IN ('.implode(', ', $logbooks_locations_array).')
) t2
ON t1.sat = t2.COL_SAT_NAME
AND t1.distance = t2.COL_DISTANCE
@@ -58,17 +59,20 @@ class Distancerecords_model extends CI_Model {
ORDER BY distance DESC;';
$query = $this->db->query($sql);
$result = array();
$result = array();
// With that query for oldest QSO per sat and distance
foreach ($query->result() as $row) {
$bindings=[];
$subsql = 'SELECT COL_SAT_NAME AS sat, COL_TIME_ON as time, COL_CALL as callsign, COL_GRIDSQUARE as grid, COL_MODE AS mode, COL_PRIMARY_KEY as primarykey
FROM '.$this->config->item('table_name').'
WHERE station_id IN ('.implode(', ', $logbooks_locations_array).')
AND COL_SAT_NAME = "'.$row->sat.'"
AND COL_DISTANCE = '.$row->distance.'
AND COL_SAT_NAME = ?
AND COL_DISTANCE = ?
ORDER BY COL_TIME_ON ASC LIMIT 1;';
$subquery = $this->db->query($subsql);
$bindings[]=$row->sat;
$bindings[]=$row->distance;
$subquery = $this->db->query($subsql, $bindings);
$subrow = $subquery->row();
array_push($result, (object) ["sat" => $row->sat, "distance" => $row->distance, "time" => $subrow->time, "primarykey" => $subrow->primarykey, "callsign" => $subrow->callsign, "mode" => $subrow->mode, "grid" => $subrow->grid]);
}