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
|