Location: PHPKode > scripts > dbff > dbff/sample.php
<?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;
?>
Return current item: dbff