| 
<?php
 // This would be the format and sample conten of the data files to load
 /* countries.txt
 AF,AFG,AFGHANISTAN
 AL,ALB,ALBANIA
 BE,BEL,BELGIUM
 BZ,BLZ,BELIZE
 CM,CMR,CAMEROON
 CA,CAN,CANADA
 DK,DNK,DENMARK
 DJ,DJI,DJIBOUTI
 EC,ECU,ECUADOR
 EG,EGY,EGYPT
 
 cities.txt
 Afghanistan;Herat
 Afghanistan;KABUL
 Afghanistan;Kandahar
 Afghanistan;Mazar-i-Sharif
 Albania;TIRANA
 Belgium;Antwerp
 Belgium;Brugge
 Belgium;BRUSSELS
 Belgium;Charleroi
 Belgium;Gent
 Belgium;Kortrijk
 Belgium;La Louviïle
 Belgium;Liïle
 Belgium;Mons
 Belgium;Namur
 Belize;BELMOPAN
 Cameroon;Douala
 Cameroon;YAOUNDE
 Canada;Brampton
 Canada;Burlington
 Canada;Burnaby
 Canada;Calgary
 Canada;East York
 Canada;Edmonton
 Canada;Etobicoke
 Canada;Gloucester
 Canada;Halifax
 Canada;Hamilton
 Canada;Kitchener
 Canada;Laval
 Canada;London
 Canada;Longueuil
 Canada;Markham
 Canada;Mississauga
 Canada;Montreal
 Canada;Nepean
 Canada;North York
 Canada;Oakville
 Canada;Oshawa
 Canada;OTTAWA
 Canada;Qu�ec
 Canada;Regina
 Canada;Richmond
 Canada;Saskatoon
 Canada;Scarborough
 Canada;St Catharines
 Canada;Surrey
 Canada;Thunder Bay
 Canada;Toronto
 Canada;Vancouver
 Canada;Vaughan
 Canada;Windsor
 Canada;Winnipeg
 Canada;York
 Denmark;COPENHAGEN
 Ecuador;Ambato
 Ecuador;Cuenca
 Ecuador;Esmeraldas
 Ecuador;Guayaquil
 Ecuador;Machala
 Ecuador;Manta
 Ecuador;Milagro
 Ecuador;Portoviejo
 Ecuador;QUITO
 Ecuador;Santo Domingo de los Colorados
 Egypt;Alexandria
 Egypt;Assyt
 Egypt;Aswan
 Egypt;Banha
 Egypt;Beni-Suef
 Egypt;CAIRO
 Egypt;Damanhr
 Egypt;El-Mahalla El-Kubra
 Egypt;Faiym
 Egypt;Giza
 Egypt;Ismailia
 Egypt;Kafr-El-Dwar
 Egypt;Kena
 Egypt;Luxer
 Egypt;Mansra
 Egypt;Menia
 Egypt;Port Said
 Egypt;Shebin-El-Kom
 Egypt;Shubra-El-Khema
 Egypt;Sohag
 Egypt;Suez
 Egypt;Tanta
 Egypt;Zagazig
 */
 
 /*  Name: load_countries.php dbff sample
 Author: Jerry Mattsson
 Created/Updated july-05/oct-06
 */
 require_once  'dbff.php';
 /* load file
 AF,AFG,AFGHANISTAN
 AL,ALB,ALBANIA
 DZ,DZA,ALGERIA
 ....
 into file db
 */
 print '<HTML><HEAD><BODY BGCOLOR="aqua">';
 $file               = 'countries.txt';
 $delimiter          = ',';
 $countries_file     = 'countries';
 
 $countries_def = array (
 'name'    => array ('size'=>50, 'chkNN'=>true),
 'iso2'    => array ('size'=>2,  'pk'=>1, 'UPPER'=>true),
 'iso3'    => array ('size'=>3,  'UPPER'=>true));
 
 $countries            = new dbff;
 $countries->file      = $countries_file;
 $countries->recdef    = $countries_def;
 $countries->changelog = FALSE;
 $countries->rectype   = 1;
 $countries->trace     = TRUE;
 
 $rec = array ();
 if ( !file_exists($file) ) {
 print "File $file not found";
 exit;
 }
 // read and insert
 $fp     = fopen($file, 'r') or die("Cannot open file $file");
 print 'Reading Country File<br>';
 while (!feof ($fp)) {
 $str = trim(fgets($fp));
 if (trim($str)<>'') {
 $arr = explode($delimiter,$str);
 $rec = array ( ucwords(strtolower($arr[2])), $arr[0], $arr[1] );
 print 'Inserting '.$rec[0].' ';
 if(!$countries->insert ($rec)) print $dbfferr.'<br>';
 };
 };
 fclose($fp) or die("Cannot close file $file");
 // done
 
 print '<br>';
 print count($countries->recs). ' Inserted<br>';
 $countries->commit();
 print_r($countries->errstk);
 print '</BODY></HTML>';
 exit;
 ?>
 <?php
 /*  Name: load_cities.php, dbff sample
 Author: Jerry Mattsson
 Created/Updated july 05
 */
 require_once  'dbff.php';
 /* load file
 Afghanistan;Herat
 Afghanistan;KABUL
 Afghanistan;Kandahar
 Afghanistan;Mazar-i-Sharif
 ....
 into file db
 */
 print '<HTML><HEAD><BODY BGCOLOR="aqua">';
 $file               = 'cities.txt';
 $delimiter          = ';';
 $countries_file     = 'countries';
 $cities_file        = 'cities';
 
 $countries_def = array (
 'name'    => array ('size'=>50, 'chkNN'=>true),
 'iso2'    => array ('size'=>2,  'pk'=>1, 'UPPER'=>true),
 'iso3'    => array ('size'=>3,  'UPPER'=>true));
 
 $cities_def = array (
 'id'        => array ('size'=>10, 'type'=>'INT', 'pk'=>'sequence'),
 'name'    => array ('size'=>35, 'chkNN'=>true, 'uk'=>true),
 'country'    => array ('size'=>2,  'chkNN'=>true, 'UPPER'=>true, 'fk'=> array('COUNTRY','ISO2')));
 
 $countries          = new dbff;
 $countries->file    = $countries_file;
 $countries->recdef  = $countries_def;
 
 $cities             = new dbff;
 $cities->file       = $cities_file;
 $cities->recdef     = $cities_def;
 $cities->rectype    = 1;
 $cities->changelog  = FALSE;
 //$cities->trace      = TRUE;
 
 $i = 0;
 if ( !file_exists($file) ) {
 print "File $file not found";
 exit;
 }
 // read file
 $fp     = fopen($file, 'r') or die("Cannot open file $file");
 print 'Reading City File<br>';
 while (!feof ($fp)) {
 $str = trim(fgets($fp));
 if (!trim($str)=='') {
 $arr = explode($delimiter,$str);
 $cty = ucwords(strtolower(trim($arr[0])));
 $cntyrec = $countries->getrec($cty,0);
 if ($cntyrec==NULL) print "Country $cty not found<br>";
 else {
 $rec = array ( 0, ucwords(strtolower($arr[1])), $cntyrec[1] ); // dummy id value
 if(!$cities->insert ($rec)) print '<br>'.$dbfferr;
 }
 };
 };
 fclose($fp) or die("Cannot close file $file");
 // Done
 print '<br>'.count($cities->recs). ' Inserted<br>';
 $cities->commit();
 //if ($cities->errstk) print_r ($cities->errstk);
 print '</BODY></HTML>';
 ?>
 
 <?php
 /*  Name: list_countries.php dbff sample
 Author: Jerry Mattsson
 Created/Updated july-05/oct-06
 */
 require_once  'dbff.php';
 
 print '<HTML><HEAD><BODY BGCOLOR="aqua">';
 $countries_file     = 'countries';
 $countries_def = array ( 'TABLE_NAME'=>'COUNTRY',
 'name'    => array ('size'=>50, 'chkNN'=>true),
 'iso2'    => array ('size'=>2,  'pk'=>1, 'UPPER'=>true),
 'iso3'    => array ('size'=>3,  'UPPER'=>true));
 
 $countries            = new dbff;
 $countries->file      = $countries_file;
 $countries->recdef    = $countries_def;
 //$countries->trace     = TRUE;
 // read and list
 $countries->select();
 while ($c=$countries->selectget()) {
 print 'Iso2='.$c['COUNTRY.ISO2'].' Iso3='.$c['COUNTRY.ISO3'].' '.$c['COUNTRY.NAME'].'<br>';
 }
 print '<br>'.count($countries->recs). ' Listed<br>';
 print_r($countries->errstk);
 print '</BODY></HTML>';
 exit;
 ?>
 <?php
 /*  Name: search_countries.php, dbff sample
 Author: Jerry Mattsson
 Created oct-06
 */
 require_once  'dbff.php';
 
 $country_name = $city_name = NULL;
 if (isset($_POST['scountry']) && isset($_POST['country']) && !empty($_POST['country']))
 $country_name = trim($_POST['country']);
 
 $countries_def = array ( 'TABLE_NAME'=>'COUNTRY', 'FILE_NAME'=>'countries',
 'name'    => array ('size'=>50, 'chkNN'=>true),
 'iso2'    => array ('size'=>2,  'pk'=>1, 'UPPER'=>true),
 'iso3'    => array ('size'=>3,  'UPPER'=>true));
 
 $cities_def = array ( 'TABLE_NAME'=>'CITY', 'FILE_NAME'=>'cities',
 'id'        => array ('size'=>10, 'type'=>'INT', 'pk'=>'sequence'),
 'name'    => array ('size'=>35, 'chkNN'=>true, 'uk'=>true),
 'country'    => array ('size'=>2,  'chkNN'=>true, 'UPPER'=>true, 'fk'=> array('COUNTRY','ISO2')));
 
 $countries          = new dbff;
 $countries->recdef  = $countries_def;
 $cities             = new dbff;
 $cities->recdef     = $cities_def;
 
 $c1 = $countries->select();
 $c2 = $cities->select();
 $c4 = $c1*$c2;
 
 print '<HTML><HEAD><BODY BGCOLOR="aqua">';
 print    '<form name="ccsearch" action="'.$_self.'" method="post" >
 Enter Letters or name for Country search:
 <input  type="TEXT" name="country" id="country" size="30" value="">
 <input  type="SUBMIT" name="scountry" id="scountry">
 <br>
 </FORM>';
 
 Print "Reading $c1 countries and $c2 cities $c1 ($c4 possible combinations)<br>";
 
 if (!isset($country_name) || empty($country_name)) {
 print "No Search value entered";
 exit;
 }
 
 $str = NULL;
 if (!is_null($country_name)) {    /// Search country
 $c1 = $countries->select('name',$country_name,'like');
 if ($c1==0) {
 $str .= "No Country starting with $country_name found";
 exit;
 }
 while ($c=$countries->selectget()) {
 $str .= '<br>'.$c['COUNTRY.NAME'].' ';
 $c3 = $cities->select('country',$c['COUNTRY.ISO2']);
 if ($c3>0) {
 $str .= "Has $c3 City/Cities=";
 while ($cc=$cities->selectget()) $str .= $cc['CITY.NAME'].' ';
 } else $str .= ' Has no cities stored';
 }
 }
 print $str.'<br>';
 
 print_r($countries->errstk);
 print_r($cities->errstk);
 print '</BODY></HTML>';
 exit;
 ?>
 <?php
 /*  Name: search_cities.php dbff sample
 Author: Jerry Mattsson
 Created oct-06
 */
 require_once  'dbff.php';
 
 if (isset($_POST['scity']) && isset($_POST['city']) && !empty($_POST['city']))
 $city_name = trim($_POST['city']);
 
 $countries_def = array ( 'TABLE_NAME'=>'COUNTRY', 'FILE_NAME'=>'countries',
 'name'    => array ('size'=>50, 'chkNN'=>true),
 'iso2'    => array ('size'=>2,  'pk'=>1, 'UPPER'=>true),
 'iso3'    => array ('size'=>3,  'UPPER'=>true));
 
 $cities_def = array ( 'TABLE_NAME'=>'CITY', 'FILE_NAME'=>'cities',
 'id'        => array ('size'=>10, 'type'=>'INT', 'pk'=>'sequence'),
 'name'    => array ('size'=>35, 'chkNN'=>true, 'uk'=>true),
 'country'    => array ('size'=>2,  'chkNN'=>true, 'UPPER'=>true, 'fk'=> array('COUNTRY','ISO2')));
 
 $countries          = new dbff;
 $countries->recdef  = $countries_def;
 $cities             = new dbff;
 $cities->recdef     = $cities_def;
 
 $c1 = $countries->select();
 $c2 = $cities->select();
 $c4 = $c1*$c2;
 
 print '<HTML><HEAD><BODY BGCOLOR="aqua">';
 print    '<form name="ccsearch" action="'.$_self.'" method="post" >
 Enter Letters or name for City search:
 <input  type="TEXT" name="city" id="city" size="30" value="">
 <input  type="SUBMIT" name="scity" id="scity">
 <br>
 </FORM>';
 
 Print "Reading $c1 countries and $c2 cities $c1 ($c4 possible combinations)<br>";
 
 if (!isset($city_name) || empty($city_name)) {
 print "No Search value entered";
 exit;
 }
 
 $str = NULL;
 /// Search city
 $c3 = $cities->select('name',$city_name,'like');
 if ($c3==0) {
 $str .= "No City starting with $city_name found";
 } else {
 while ($cc=$cities->selectget()) {
 $str .=  '<br>City named: '.$cc['CITY.NAME'].' ';
 $c1 = $countries->select('iso2',$cc['CITY.COUNTRY']);
 if ($c1>0) {
 $str .= "Exists in ";
 while ($c=$countries->selectget()) $str .= $c['COUNTRY.NAME'].' ';
 } else $str .= ' Has no corresponding country!';
 }
 }
 print $str.'<br>';
 
 print_r($countries->errstk);
 print_r($cities->errstk);
 print '</BODY></HTML>';
 exit;
 ?>
 
 |