$db = new DatabaseConnection(); $db->exec('DROP TABLE IF EXISTS geoalias'); $db->exec('CREATE TABLE geoalias (id INT PRIMARY KEY AUTO_INCREMENT, geoid BIGINT, locname VARCHAR(64) CHARSET utf8, INDEX locname(locname(5))) CHARSET utf8'); $rows = $db->getRows("SELECT id,alternatenames FROM geonames WHERE alternatenames!=''"); console::write('%8d / %8d ', 0, count($rows)); foreach ($rows as $row) { $alt = explode(',', $row['alternatenames']); foreach ($alt as $altstr) { $db->insertRow("INSERT INTO geoalias (geoid,locname) VALUES (%d,%s)", $row['id'], $altstr); } $rc++; $rt++; if ($rt >= 100) { $rh++; if ($rh >= 50) { console::write("\n%8d / %8d ", $rc, count($rows)); $rh = 0; } else { console::write('.'); } $rt = 0; } } console::writeLn(' Done!'); } } if (base::appPath() != '/') { Actions::register(new GeonamesAction(), 'geonames', 'Manage the geonames table', GeonamesAction::$commands); } else { console::writeLn("Warning: Application path can not be resolved for Geonames action. Define APP_PATH or execute from application root."); }