Update of /cvsroot/phpweather/phpweather In directory usw-pr-cvs1:/tmp/cvs-serv31732 Modified Files: db_dba.php db_mysql.php Log Message: These two database-backends can now be configured with the configurator. Index: db_dba.php =================================================================== RCS file: /cvsroot/phpweather/phpweather/db_dba.php,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- db_dba.php 2001/04/27 19:14:17 1.5 +++ db_dba.php 2001/05/19 16:17:53 1.6 @@ -59,23 +59,23 @@ $this->is_connected = $this->link_id = dba_open($this->properties['db_path'] . '/' . $this->properties['db_metars'], - 'w', + 'c', $this->properties['db_handler']); $this->link_stations_id = dba_open($this->properties['db_path'] . '/' . $this->properties['db_stations'], - 'r', + 'c', $this->properties['db_handler']); } else { $this->is_connected = $this->link_id = dba_popen($this->properties['db_path'] . '/' . $this->properties['db_metars'], - 'w', + 'c', $this->properties['db_handler']); $this->link_stations_id = dba_popen($this->properties['db_path'] . '/' . $this->properties['db_stations'], - 'r', + 'c', $this->properties['db_handler']); } return $this->is_connected; @@ -143,7 +143,7 @@ } /** - * Translated an ICAO into a station name + * Translates an ICAO into a station name * * The boring ICAO (e.g. EKYT) is translated into something like 'Aalborg, Denmark'. * @@ -156,6 +156,19 @@ return dba_fetch($station, $this->link_stations_id); } else { return $station; + } + } + + function create_tables() { + /* The databases are created when we connect */ + return $this->connect(); + } + + function insert_station($icao, $name, $country) { + if (dba_exists($icao, $this->link_stations_id)) { + return dba_replace($icao, "$name, $country", $this->link_stations_id); + } else { + return dba_insert($icao, "$name, $country", $this->link_stations_id); } } } Index: db_mysql.php =================================================================== RCS file: /cvsroot/phpweather/phpweather/db_mysql.php,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- db_mysql.php 2001/04/26 13:11:00 1.4 +++ db_mysql.php 2001/05/19 16:17:53 1.5 @@ -175,6 +175,61 @@ return $this->fetch_row(); } + function create_tables() { + if ($this->connect()) { + /* First we make a table for the METARs */ + $this->query('DROP TABLE IF EXISTS ' . $this->properties['db_metars']); + $this->query('CREATE TABLE ' . $this->properties['db_metars'] . '( + metar varchar(255) NOT NULL, + timestamp timestamp(14), + station varchar(4) NOT NULL, + PRIMARY KEY (station), + UNIQUE station (station) +)'); + + /* Then we make a table for the stations. */ + $this->query('DROP TABLE IF EXISTS ' . $this->properties['db_stations']); + $this->query('CREATE TABLE ' . $this->properties['db_stations'] . '( + icao varchar(4) NOT NULL, + name varchar(255) NOT NULL, + country varchar(128) NOT NULL, + PRIMARY KEY (icao), + UNIQUE icao (icao), + KEY country (country) +)'); + + return true; // Succes! + } else { + return false; // Failure! + } + } + + /** + * Translates an ICAO into a station name + * + * The boring ICAO (e.g. EKYT) is translated into something like 'Aalborg, Denmark'. + * + * @param string The ICAO one want's to translate. + * @return string The full name of the station, including country. + * @access public + */ + function lookup_station($station) { + $this->query('SELECT name, country FROM ' . $this->properties['db_stations'] . + "WHERE icao = '$station'"); + if ($this->num_rows()) { + $row = $this->fetch_row(); + return "$row[0], $row[1]"; + } else { + return $station; + } + } + + function insert_station($icao, $name, $country) { + $sql = 'INSERT INTO ' . $this->properties['db_stations'] . + " VALUES('$icao', '$name', '$country')"; + return $this->query($sql); + } + } ?> _______________________________________________ PHPWeather-checkins mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/phpweather-checkins