return $password;
}
+ public function cast_text($str) {
+ if ($fct = $this->conf_type('cast_text')) $str = $fct($str);
+ return $str;
+ }
+
} # < Class
?>
public function sql_name_cast_text() {
$name = $this->db()->sql_name($this->name);
- if ($fct = $this->db()->conf_type('cast_text')) $name = $fct($name);
- return $name;
+ return $this->db()->cast_text($name);
}
public function sql_name() {
public function out($v,$head=[],$conf=[]) { return $this->db()->out($v,$head,$conf); }
public function url_referer($default='') {
+
if (self::p('referer')) {
return urldecode($this->p('referer'));
+
} elseif(!empty($default)) {
return $default;
+
} else {
return '?table=' . urlencode($this->name) . (self::p('db') ? '&db='.self::p('db') : '');
+
}
+
}
public function fields_rows() {
list($sql,$where,$limit,$select_count) = $this->rows_sql();
foreach ([
- 'maxlen' => 'MAX(LENGTH(<NAME>))',
+ 'maxlen' => 'MAX(LENGTH('.$this->db()->cast_text('<NAME>').'))',
'max' => 'MAX(<NAME>)',
] as $name => $select) {
- if ($this->p($name)) {
- $sql = '';
+ if (!$this->p($name)) continue;
+ $sql = '';
- foreach ($this->fields() as $f) {
- $sql .= ($sql == '' ? 'SELECT ' : ', ');
- $sql .= str_replace('<NAME>',$f->sql_name(),$select);
- }
+ foreach ($this->fields() as $f) {
+ $sql .= ($sql == '' ? 'SELECT ' : ', ');
+ $sql .= str_replace('<NAME>',$f->sql_name(),$select);
+ }
- $sql .= ' FROM ' . $this->sql_name() . $where . ($limit ? " LIMIT ".$limit : '');
- $len = $this->db()->query($sql)->fetch(PDO::FETCH_NUM);
+ $sql .= ' FROM ' . $this->sql_name() . $where . ($limit ? " LIMIT ".$limit : '');
+ $len = $this->db()->query($sql)->fetch(PDO::FETCH_NUM);
- $i = 0;
- foreach ($rows as $k => $v) { $rows[$k][$name] = $len[$i]; $i++; }
+ $i = 0;
+ foreach ($rows as $k => $v) { $rows[$k][$name] = $len[$i]; $i++; }
- }
}
- #return $this->out(array_values($this->object2array($this->fields())));
return $rows;
}
--- /dev/null
+#!/usr/bin/env perl
+use strict;
+use warnings;
+@ARGV = ('curl -s http://download.geonames.org/export/dump/countryInfo.txt |');
+#exec($ARGV[0]); exit;
+
+while (<>) {
+ #s/^#ISO/ISO/;
+ next if /^#/;
+ chomp($_);
+ s,\\,\\\\,g;
+ my @r = split("\t",$_);
+ unshift @r,$r[0];
+ while (@r<20) {
+ push @r,'';
+ }
+ print join("\t",@r)."\n";
+}
--- /dev/null
+-- ISO
+-- ISO3
+-- ISO-Numeric
+-- fips
+-- Country
+-- Capital
+-- Area(in sq km)
+-- Population
+-- Continent
+-- tld
+-- CurrencyCode
+-- CurrencyName
+-- Phone
+-- Postal Code Format
+-- Postal Code Regex
+-- Languages
+-- geonameid
+-- neighbours
+-- EquivalentFipsCode
+DROP TABLE IF EXISTS country;
+CREATE TABLE IF NOT EXISTS country (
+ id varchar(2),
+ iso varchar(2),
+ iso3 varchar(3),
+ isonum varchar(3),
+ fips varchar(2),
+ name varchar(200),
+ capital varchar(200),
+ area_km varchar(200),
+ population bigint,
+ continent varchar(200),
+ tld varchar(200),
+ currency_code varchar(200),
+ currency_name varchar(200),
+ phone varchar(200),
+ zip_formaat varchar(200),
+ zip_regexp varchar(200),
+ languages varchar(200),
+ geonameid varchar(200),
+ neighbours varchar(200),
+ eqfips varchar(200)
+ -- PRIMARY KEY(id,country)
+);
+GRANT ALL ON ALL TABLES IN SCHEMA public TO www;
+GRANT ALL ON ALL TABLES IN SCHEMA public TO nico;
+GRANT ALL ON ALL TABLES IN SCHEMA public TO root;
+BEGIN TRANSACTION;
+DELETE FROM country;
+copy country from stdin with (format 'text');
+COMMIT;
+
#!/usr/bin/env perl
use strict;
use warnings;
-#exec('curl -s http://download.geonames.org/export/zip/allCountries.zip | zcat');
-#exit;
@ARGV = ('curl -s http://download.geonames.org/export/zip/allCountries.zip | zcat |');
+#exec($ARGV[0]); exit;
while (<>) {
chomp($_);
}
if (empty($values)) $this->error('Missing values');
- #debug([$keys,$values,$this->params['args']]);
$values = $add ? array_fill(0,count($keys),'') : $values;
+
+ #debug([count($keys),$keys,count($values),$values]);
$values = array_combine($keys,$values);
- # NB 23.11.17: Handle format for /vi
+ # Handle format for /vi
if ($this->params['format'] != $this->format_html) {
$row = $this->db->query2h($this->table->sql_edit($values));