Re: Keeping Mears in Database
Brought to you by:
iridium
From: Klaus D. <kla...@gm...> - 2003-04-07 19:27:24
|
On Sun, 6 Apr 2003 23:38:21 +0200 Klaus Dahlke <kla...@gm...> wrote: > On Sun, 06 Apr 2003 17:58:09 +0200 > Martin Geisler <gim...@gi...> wrote: > > > > > > But as Klaus notes, then it shouldn't be that difficult for the SQL > > based backends: just fetch the newest METAR for a given station per > > default and then always insert new METARs instead of replacing the one > > ones. > > Martin, > > as I mentioned before, inserting gets duplicate keys, I don't know > exactly why and how. Anyways, what I did so far: > > Not to interfere with the flow logic of the program I look at what would > happen if I try to save teh metars in an own history table. > I created a new table (metars_history) with the colums req_time, icao, > metar, metar_time (time of request, icao, metar, time metar was > created). req_time and icao are set to UNIQUE. > > I put the following statement into defaults-dist.php: > $this->properties['db_metars_hist'] = 'metars_history'; > > I inserted a new function to pw_db_mysql.php: > > function insert_metar_history($icao, $metar, $timestamp) { > $this->query(sprintf('INSERT INTO %s SET icao = "%s", ' . > 'metar = "%s", metar_time = FROM_UNIXTIME(%d), > req_time = NOW()', > $this->properties['db_metars_hist'], $icao, > addslashes($metar), intval($timestamp))); > } > > > I added two lines in data_retrieval.php: > > /* We then cache the METAR in our database */ > if ($new_station) { > $this->debug('get_metar_from_web(): Inserting new METAR for > <code>' . > $this->get_location() . '</code>'); > $this->db->insert_metar($icao, $metar, $timestamp); > ---> $this->db->insert_metar_history($icao, $metar, $timestamp); > } else { > $this->debug('get_metar_from_web(): Updating METAR for <code>' . > $this->get_location() . '</code>'); > $this->db->update_metar($icao, $metar, $timestamp); > --> $this->db->insert_metar_history($icao, $metar, $timestamp); > } > > Unfortunately, the insert doesn' happen. Is it easy with this concept to get the history table populated? > Hi all, I must have made something wrong on Sunday night. I just run phpweather and yes, the metar is with the above setup in the 'metar_history' table. So, everything seems to work now. Cheers, Klaus |