<?php
// flat_file_engine.php
// RJM Programming
// April, 2017
// Flat file data source engine
//ourdatatable1
//|col1_1,col2_1,col3_1
//|internal1_1,internal2_1
//|r1c1_1,r1c2 1,r1c3_1~r2c1_1,r2c2_1,r2c3_1~r3c1_1,r3c2_1,r3c3_1~r4c1_1,r4c2_1,r4c3_1
//`
//ourdatatable2
//|col1_2,col2_2,col3_2
//|internal1_2,internal2_2
//|r1c1_2,r1c2_2,r1c3_2~r2c1_2,r2c2_2,r2c3_2~r3c1_2,r3c2_2,r3c3 2~r4c1_2,r4c2_2,r4c3_2
//`
$results="";
$insql="";
$datais="";
$yellow="yellow";
$irecord="";
$tnis="";
$fis="";
$deletenow=false;
$updatenow=-1;
$shownow=0;
$bitsd="";
$cwherefld="";
$cwhereeq="";
$cwhereval="";
$cwhereao="";
$cwheredelim="";
$cwheretrues="";
$cwheretrue=false;
$cwhereset="";
$gotridof="";
$initialrec=""; 
$ddl_table="";
$initialrec="";
$hshr="";
$hrvs="";
$ddl_statement="";
$ddl_table="";
$ddl_owner="";
$ddl_exists=false;
$hrvs="rjmprogramming.com.au";  
$hshr=$_SERVER['HTTP_REFERER'];
if ($_SERVER['SERVER_NAME'] == "localhost") {
  $hrvs=$_SERVER['SERVER_NAME'];
  $hshr=$hrvs;  
}
$formbits="";
$tableprefix="<table style='width:100%;'><tbody><tr><td>";
$tablemidbit="</td><td style=vertical-align:top;>" . $formbits;
$tablesuffix="</td></tr></tbody></table>";
$bonload="";

$cfilter=" function filter(oi) {
 var iois=oi.value;
 var wasi=iois;
 iois=iois.replace(/\+/g, \"~ + char(43) + ~\");
 iois=iois.replace(/\'/g, \"' + char(39) + '\");
 iois=iois.replace(/\~ \+ char(43) \+ \~/g,\"' + char(43) + '\");
 iois=iois.replace(/\,/g, \"' + char(44) + '\");
 iois=iois.replace(/\`/g, \"' + char(96) + '\");
 iois=iois.replace(/\|/g, \"' + char(124) + '\");
 iois=iois.replace(/\~/g, \"' + char(126) + '\");
 iois=iois.replace(/\"/g, \"' + char(34) + '\");
 iois=iois.replace(/\' \+ char\(126\) \+ \' \+ char\(43\) \+ \' \+ char\(126\) \+ \'/g,\"' + char(43) + '\");
 if (iois != oi.value) {
   oi.value=iois;
   oi.title+=' ... ' + was;
 }
 return iois;
}
";

function reverse_filter($iois) {
 $iois=str_replace("' + char(43) + '", "+",$iois);
 $iois=str_replace("' + char(39) + '", "'",$iois);
 $iois=str_replace("' + char(44) + '", ",",$iois);
 $iois=str_replace("' + char(96) + '", "`",$iois);
 $iois=str_replace("' + char(126) + '", "~",$iois);
 $iois=str_replace("' + char(124) + '", "|",$iois);
 $iois=str_replace("' + char(34) + '", '"',$iois);
 
 $iois=str_replace("' char(43) '", "+",$iois);
 $iois=str_replace("' char(39) '", "'",$iois);
 $iois=str_replace("' char(44) '", ",",$iois);
 $iois=str_replace("' char(96) '", "`",$iois);
 $iois=str_replace("' char(126) '", "~",$iois);
 $iois=str_replace("' char(124) '", "|",$iois);
 $iois=str_replace("' char(34) '", '"',$iois);
 
 $iois=str_replace("'  char(43)  '", "+",$iois);
 $iois=str_replace("'  char(39)  '", "'",$iois);
 $iois=str_replace("'  char(44)  '", ",",$iois);
 $iois=str_replace("'  char(96)  '", "`",$iois);
 $iois=str_replace("'  char(126)  '", "~",$iois);
 $iois=str_replace("'  char(124)  '", "|",$iois);
 $iois=str_replace("'  char(34)  '", '"',$iois);
 
 $iois=str_replace("'   char(43)   '", "+",$iois);
 $iois=str_replace("'   char(39)   '", "'",$iois);
 $iois=str_replace("'   char(44)   '", ",",$iois);
 $iois=str_replace("'   char(96)   '", "`",$iois);
 $iois=str_replace("'   char(126)   '", "~",$iois);
 $iois=str_replace("'   char(124)   '", "|",$iois);
 $iois=str_replace("'   char(34)   '", '"',$iois);
 return $iois;
}

function rev_filter($iois) {
 $iois=str_replace("' char(43) '", "' + char(43) + '",$iois);
 $iois=str_replace("' char(39) '", "' + char(39) + '",$iois);
 $iois=str_replace("' char(44) '", "' + char(44) + '",$iois);
 $iois=str_replace("' char(96) '", "' + char(96) + '",$iois);
 $iois=str_replace("' char(126) '", "' + char(126) + '",$iois);
 $iois=str_replace("' char(124) '", "' + char(124) + '",$iois);
 $iois=str_replace("' char(34) '", "' + char(34) + '",$iois);
 
 $iois=str_replace("'  char(43)  '", "' + char(43) + '",$iois);
 $iois=str_replace("'  char(39)  '", "' + char(39) + '",$iois);
 $iois=str_replace("'  char(44)  '", "' + char(44) + '",$iois);
 $iois=str_replace("'  char(96)  '", "' + char(96) + '",$iois);
 $iois=str_replace("'  char(126)  '", "' + char(126) + '",$iois);
 $iois=str_replace("'  char(124)  '", "' + char(124) + '",$iois);
 $iois=str_replace("'  char(34)  '", "' + char(34) + '",$iois);
 
 $iois=str_replace("'   char(43)   '", "' + char(43) + '",$iois);
 $iois=str_replace("'   char(39)   '", "' + char(39) + '",$iois);
 $iois=str_replace("'   char(44)   '", "' + char(44) + '",$iois);
 $iois=str_replace("'   char(96)   '", "' + char(96) + '",$iois);
 $iois=str_replace("'   char(126)   '", "' + char(126) + '",$iois);
 $iois=str_replace("'   char(124)   '", "' + char(124) + '",$iois);
 $iois=str_replace("'   char(34)   '", "' + char(34) + '",$iois);
 
 $iois=str_replace(" + char(126) + ' char(43) ' + char(126) + "," + char(43) + ",$iois);
 return $iois;
}

function lastmapping($proposed, $beforebits, $ndel, $inrecis, $thiscollist) {
  $op = array("+", "-", "/", "*", "%");
  $optwo = array("++", "--");
  $inrecsis=explode(",", $inrecis);
  $colsarris=explode(",", $thiscollist);
  $interim=$proposed;   
  $isthere=false;
  $isnum=0;
  $ku=(-1 + sizeof($colsarris));
   //echo "0" . $proposed . "<br>";
  if (sizeof($inrecsis) == sizeof($colsarris) && strpos($thiscollist, ",") !== false && strpos($inrecis, ",") !== false) {
   //echo "1" . $inrecis . "<br>";
   $versus=explode(",", $inrecis)[-1 + sizeof(explode(",", $inrecis))];
   if ($versus != "") {
   //echo "11" . $versus . "<br>";
     $huhseq=explode("=", (ltrim($versus) . "=")); //[1];
     $allbut=str_replace("`","",str_replace("," . $versus . "`",",",("`" . $inrecis . "`")));
     if (strpos(("~" . $proposed . "~"), "~" . $allbut) !== false || $proposed == "") {    
   //echo "12" . "~" . $allbut . " in " . str_replace("|","~",$beforebits) . "<br>";
      $findings=explode("~" . $allbut, ("~" . str_replace("|","~",$beforebits) . "~"));
      if (sizeof($findings) == 2) {
   //echo "13 " . $findings[1] . "<br>";
         if (is_numeric(explode(",",explode("~",$findings[1])[0])[0])) {
          $isnum=explode(",",explode("~",$findings[1])[0])[0];
          $isthere=true;
         } else {
          $isnum="gfdsgfds";
         }
      }
     } 
  // echo $isnum . "<br>";
     if (is_numeric($isnum) && in_array($huhseq[0],$op) && is_numeric($huhseq[1]) && $huhseq[1] != "" && strpos($versus,"=") !== false && substr(($versus . "z"),0,1) == " ") {
        if (!$isthere) {
        $ournum=0;        
        eval("\$ournum " . $huhseq[0] . "=" . " \"$huhseq[1]\";");        
        $interim=$beforebits . $ndel . $allbut . $ournum;
        } else {
        $ournum=explode(",",explode("~",$findings[1])[0])[0];        
        eval("\$ournum " . $huhseq[0] . "=" . " \"$huhseq[1]\";");        
        $interim=str_replace($allbut . $isnum,$allbut . $ournum,$beforebits);
        }
     } else if (is_numeric($isnum) && ($versus . "z") == " ++z") {
        if (!$isthere) {
        $ournum=0;        
        $ournum++;       
        $interim=$beforebits . $ndel . $allbut . $ournum;
        } else {
        $ournum=explode(",",explode("~",$findings[1])[0])[0];        
        $ournum++;       
        $interim=str_replace($allbut . $isnum,$allbut . $ournum,$beforebits);
        }
     } else if (is_numeric($isnum) && ($versus . "z") == " --z") {
        if (!$isthere) {
        $ournum=0;        
        $ournum--;       
        $interim=$beforebits . $ndel . $allbut . $ournum;
        } else {
        $ournum=explode(",",explode("~",$findings[1])[0])[0];        
        $ournum--;       
        $interim=str_replace($allbut . $isnum,$allbut . $ournum,$beforebits);
        }
     }
   }
  }
  return $interim;
}

function within($cwheresset, $inrecis, $inrecsis, $colsarris) {
  $op = array("+", "-", "/", "*", "%");
  $optwo = array("++", "--");
  $outrec=$inrecis;
  $ju=0;
  for ($iu=0; $iu<sizeof($cwheresset); $iu++) {  
    $fldname=str_replace(" SET ","",explode("=",$cwheresset[$iu])[0]);
    if (strpos($cwheresset[$iu],"='") !== false) {
      $versus=str_replace("`","",str_replace("'`","",(explode("='",$cwheresset[$iu])[1] . "`")));
    } else {
      $versus=explode("=",$cwheresset[$iu])[1];
    }  
    $idel="";
    $interim="";
    for ($ku=0; $ku<sizeof($colsarris); $ku++) {
      if ($fldname == $colsarris[$ku]) {
        $huhseq=explode("=", (ltrim($versus) . "=")); //[1];
        if (is_numeric($inrecsis[$ku]) && in_array($huhseq[0],$op) && is_numeric($huhseq[1]) && $huhseq[1] != "" && strpos($versus,"=") !== false && substr(($versus . "z"),0,1) == " ") {
        $ournum=$inrecsis[$ku];        
        eval("\$ournum " . $huhseq[0] . "=" . " \"$huhseq[1]\";");        
        $interim.=$idel . $ournum;
        } else if (is_numeric($inrecsis[$ku]) && ($versus . "z") == " ++z") {
        $ournum=$inrecsis[$ku];     
        $ournum++;   
        $interim.=$idel . $ournum;
        } else if (is_numeric($inrecsis[$ku]) && ($versus . "z") == " --z") {
        $ournum=$inrecsis[$ku];     
        $ournum--;   
        $interim.=$idel . $ournum;
        } else {
        $interim.=$idel . $versus;
        }
      } else {
        $interim.=$idel . $inrecsis[$ku];
      }
      $idel=",";
    }
    $outrec=$interim;
    $inrecsis=explode(",",$outrec);
  }
  //echo $outrec . "<br>";
  return $outrec;   
}

function isrec_relevant($inrecis, $colarris, $arrayindex, $uptonow) {
  global $initialrec,$hshr,$hrvs,$bitsd,$cwhereset,$cwherefld,$cwhereeq,$cwhereval,$cwhereao,$cwheretrues,$cwheredelim,$cwheretrue,$deletenow,$updatenow,$shownow;
  if (!$cwheretrue) return true;
  $colsarris=explode(',',$colarris);
  $inrecsis=explode(',',$inrecis);
  $cwheresset=explode(',',$cwhereset);
  $cwheresfld=explode(',',$cwherefld);
  $cwhereweq=explode(',',$cwhereeq);
  $cwheresval=explode(',',$cwhereval);
  $cwheresao=explode(',',$cwhereao);
  $cwherestrues=explode(',',$cwheretrues);
  $ju=0;
  $val="";
  $versus="";
  $retval=$cwheretue;
  for ($iu=0; $iu<sizeof($cwheresfld); $iu++) {
    $versus=$cwheresval[$iu];
    for ($ku=0; $ku<sizeof($colsarris); $ku++) {
      if ($cwheresfld[$iu] == $colsarris[$ku]) {
        $ju=$ku;
        $val=$inrecsis[$ku];
        //echo $iu . " " . $ku . " " . $cwhereweq[$iu] . "<br>";
        if ($cwhereweq[$iu] == "=") {
          if ($val == $versus) {
            //echo sizeof($cwheresfld) . " val=" . $val . " versus=" . $versus . " equal<br>";
            $cwherestrues[$iu] = "1";
          } else {
            //echo sizeof($cwheresfld) . " val=" . $val . " versus=" . $versus . " not equal<br>";
            $cwherestrues[$iu] = "0";
          }
        } else if ($cwhereweq[$iu] == "!=") {
          if ($val == $versus) {
            $cwherestrues[$iu] = "0";
          } else {
            $cwherestrues[$iu] = "1";
          }
        } else if ($cwhereweq[$iu] == ">") {
          if ($val > $versus) {
            $cwherestrues[$iu] = "1";
          } else {
            $cwherestrues[$iu] = "0";
          }
        } else if ($cwhereweq[$iu] == ">=") {
          if ($val >= $versus) {
            $cwherestrues[$iu] = "1";
          } else {
            $cwherestrues[$iu] = "0";
          }
        } else if ($cwhereweq[$iu] == "<") {
          if ($val < $versus) {
            $cwherestrues[$iu] = "1";
          } else {
            $cwherestrues[$iu] = "0";
          }
        } else if ($cwhereweq[$iu] == "<=") {
          if ($val <= $versus) {
            $cwherestrues[$iu] = "1";
          } else {
            $cwherestrues[$iu] = "0";
          }
         } else if (str_replace("not","",$cwhereweq[$iu]) != $cwhereweq[$iu] && str_replace("like","",$cwhereweq[$iu]) != $cwhereweq[$iu]) {
          $huhf=preg_match("/" . $versus . "/",$val);
          if ($huhf == 1) {
            $cwherestrues[$iu] = "0";
          } else {
            $cwherestrues[$iu] = "1";
          }
         } else if (str_replace("like","",$cwhereweq[$iu]) != $cwhereweq[$iu]) {
          $huhf=preg_match("/" . $versus . "/",$val);
          //echo $cwhereweq[$iu] . "  " . $huhf . "<br>";
          if ($huhf == 1) {
            //echo "here at versus,val=" . $versus . "," . $val . " " . preg_match("/" . $versus . "/",$val) . "<br>";
            $cwherestrues[$iu] = "1";
          } else {
            $cwherestrues[$iu] = "0";
          }
       }  
      }
    }
  }
  if ($cwherestrues[0] == "1") $retval=true;
  if ($cwherestrues[0] == "0") $retval=false;
  for ($iu=1; $iu<sizeof($cwherestrues); $iu++) {
    if (!$retval && $cwherestrues[$iu] == "1" && $cwheresao == "OR") {
      $retval=true;
    } else if (!$retval && $cwherestrues[$iu] == "1" && $cwheresao != "OR") {
      if ($retval) {
        $shownow=0;
        $updatenow=0;
        $deletenow=true;
        //echo $inrecis . "  " . $colarris . "  " . $arrayindex . " d " . $retval . "<br>";
if (strpos($bitsd, "~" . $inrecis . "~") !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace("~" . $inrecis . "~","~" . $outrecis . "~",$bitsd);
    } else {
    $bitsd=str_replace("~" . $inrecis . "~","~",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
  } else if (strpos($bitsd, $inrecis . "~") !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace($inrecis . "~",$outrecis . "~",$bitsd);
    } else {
    $bitsd=str_replace($inrecis . "~","",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
  } else if (strpos($bitsd, "~" . $inrecis) !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace($inrecis . "~",$outrecis . "~",$bitsd);
    } else {
    $bitsd=str_replace("~" . $inrecis,"",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
      }  
  } 
      return $retval;
    } else if ($retval && $cwherestrues[$iu] == "1" && $cwheresao != "OR") {
      $retval=true;
    } else if ($retval && $cwherestrues[$iu] == "1" && $cwheresao == "OR") {
      if ($retval) {
        $shownow=0;
        $updatenow=0;
        $deletenow=true;
if (strpos($bitsd, "~" . $inrecis . "~") !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace("~" . $inrecis . "~","~" . $outrecis . "~",$bitsd);
    } else {
    $bitsd=str_replace("~" . $inrecis . "~","~",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
  } else if (strpos($bitsd, $inrecis . "~") !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace($inrecis . "~",$outrecis . "~",$bitsd);
    } else {
    $bitsd=str_replace($inrecis . "~","",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
  } else if (strpos($bitsd, "~" . $inrecis) !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace("~" . $inrecis,"~" . $outrecis,$bitsd);
    } else {
    $bitsd=str_replace("~" . $inrecis,"",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
      }  
  } 
      //echo $inrecis . " x " . $colarris . " x " . $arrayindex . " d " . $retval . "<br>";
      return $retval;
    } else if (!$retval && $cwherestrues[$iu] == "0" && $cwheresao == "OR") {
      $retval=false;
    } else if (!$retval && $cwherestrues[$iu] == "0" && $cwheresao != "OR") {
      if ($retval) {
        $shownow=0;
        $updatenow=0;
        $deletenow=true;
if (strpos($bitsd, "~" . $inrecis . "~") !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace("~" . $inrecis . "~","~" . $outrecis . "~",$bitsd);
    } else {
    $bitsd=str_replace("~" . $inrecis . "~","~",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
  } else if (strpos($bitsd, $inrecis . "~") !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace($inrecis . "~",$outrecis . "~",$bitsd);
    } else {
    $bitsd=str_replace($inrecis . "~","",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
  } else if (strpos($bitsd, "~" . $inrecis) !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace("~" . $inrecis,"~" . $outrecis,$bitsd);
    } else {
    $bitsd=str_replace("~" . $inrecis,"",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
      } 
      } 
            //echo $inrecis . " z " . $colarris . " z " . $arrayindex . " d " . $retval . "<br>";
      return $retval;
    } else if ($retval && $cwherestrues[$iu] == "0" && $cwheresao != "OR") {
      $retval=false;
      if ($retval) {
        $shownow=0;
        $updatenow=0;
        $deletenow=true;
if (strpos($bitsd, "~" . $inrecis . "~") !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace("~" . $inrecis . "~","~" . $outrecis . "~",$bitsd);
    } else {
    $bitsd=str_replace("~" . $inrecis . "~","~",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
  } else if (strpos($bitsd, $inrecis . "~") !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace($inrecis . "~",$outrecis . "~",$bitsd);
    } else {
    $bitsd=str_replace($inrecis . "~","",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
  } else if (strpos($bitsd, "~" . $inrecis) !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace("~" . $inrecis,"~" . $outrecis,$bitsd);
    } else {
    $bitsd=str_replace("~" . $inrecis,"",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
      }  
      } 
      //echo $inrecis . " b " . $colarris . " b " . $arrayindex . " d " . $retval . "<br>";
      return $retval;
    } else if ($retval && $cwherestrues[$iu] == "0" && $cwheresao == "OR") {
      $retval=true;
    }
  }
  if ($retval) {
    $shownow=0;
    $updatenow=0;
    $deletenow=true;
if (strpos($bitsd, "~" . $inrecis . "~") !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace("~" . $inrecis . "~","~" . $outrecis . "~",$bitsd);
    } else {
    $bitsd=str_replace("~" . $inrecis . "~","~",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
  } else if (strpos($bitsd, $inrecis . "~") !== false) {
    if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace($inrecis . "~",$outrecis . "~",$bitsd);
    } else {
    $bitsd=str_replace($inrecis . "~","",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
  } else if (strpos($bitsd, "~" . $inrecis) !== false) {
     if ($cwhereset != "") {
    $outrecis=within($cwheresset, $inrecis, $inrecsis, $colsarris);
    $bitsd=str_replace("~" . $inrecis,"~" . $outrecis,$bitsd);
    } else {
   $bitsd=str_replace("~" . $inrecis,"",$bitsd);
//if ($bitsd != "") echo $inrecis . " " . $bitsd . "<br>";
}
      }    
      //echo $inrecis . " d " . $colarris . " d " . $arrayindex . " d " . $cwhereval . " d " . $cwherestrues[0] . "GG" . $retval . "<br>";
  } 
  //echo $inrecis . " d " . $colarris . " d " . $arrayindex . " d " . $cwhereval . " d " . sizeof($cwherestrues) . "F" . $cwherestrues[0] . "G" . $retval . "<br>";
  return $retval;
}

if (!isset($_GET['first'])) {
if (isset($_GET['sql'])) {
  $insql=urldecode($_GET['sql']);
} else if (isset($_POST['sql'])) {
  $insql=urldecode($_POST['sql']);
}

if (isset($_POST['ssql'])) {
  $tnis=urldecode($_POST['stable']);
  $insql="SELECT * FROM " . $tnis;
} else if (isset($_POST['isql'])) {
  $tnis=urldecode($_POST['itable']);
  $insql="INSERT INTO " . $tnis;
} else if (isset($_POST['usql'])) {
  $tnis=urldecode($_POST['utable']);
  $insql="UPDATE " . $tnis . " SET 1=1 WHERE 1=1";
} else if (isset($_POST['dsql'])) {
  $tnis=urldecode($_POST['dtable']);
  $insql="DELETE FROM " . $tnis;
}

$iwhatisleft=explode("INSERT INTO ", $insql);
$dwhatisleft=explode("DELETE FROM ", $insql);
$uwhatisleft=explode("UPDATE ", $insql);

if (isset($_GET['file'])) {
  $fis=urldecode($_GET['file']);
  $datais=@file_get_contents(urldecode($_GET['file']));
} else if (isset($_POST['file'])) {
  $fis=urldecode($_POST['file']);
  $datais=@file_get_contents(urldecode($_POST['file']));
} else if (file_exists("flat_file.dat")) {
  $fis="flat_file.dat";
  $datais=@file_get_contents("flat_file.dat");
}

$dbrecs=explode("`", $datais);
$insideoptions="";
$allowed_insideoptions="";
$cwherefld="";
$cwhereeq="";
$cwhereval="";
$cwhereao="";
$cwheredelim="";
$cwheretrues="";
$cwheretrue=false;
$cwhereset="";

if (isset($_POST['ddl']) && strpos($_SERVER['SERVER_NAME'],$hrvs) !== false) {
  $ddl_statement=str_replace("' =","'+=",str_replace("'  '","'++'",str_replace("'  =","' +=",str_replace("'   '","' ++'",urldecode($_POST['ddl'])))));  
  $ddls=explode("CREATE TABLE ", $ddl_statement);
  $ddlis=explode("INSERT INTO ", $ddl_statement);
  $ddlb=explode("(", $ddl_statement);
  if ((sizeof($ddls) > 1) && strpos($hshr,$hrvs) !== false) {  
    $ddl_table=explode("(",explode(",",explode(";",explode(" ",$ddls[1])[0])[0])[0])[0]; 
    $tnis=$ddl_table;
    $ddl_owner=str_replace("http:","",str_replace("https:","",$hshr));
    for ($ij=0; $ij<sizeof($dbrecs); $ij++) {
     if (strpos($dbrecs[$ij],"|") !== false) {
      $bits=explode("|",$dbrecs[$ij]);    
      //if (sizeof($bits) == 3) $bits[3]="";   
      if (sizeof($bits) == 4) {  
        if (str_replace("\n","",$bits[0]) == $ddl_table) {
          $i=$ij;
          $ddl_exists=true;
        }
      }
     }
    }
    if ($ddl_exists) {  
      $prehcs=str_replace("\n","",$bits[1]);
      $hcs=explode(',',$prehcs);
      $hc="";
      $hcdelim="";
      for ($ij=0; $ij<sizeof($dbrecs); $ij++) {
        $hc.=$hcdelim . "'value" . (1 + $ij) . "'";
        $hcdelim=",";
      }
      $results="<h4>Your <i>" . $ddl_statement . "</i> has been done once already and so we await, more, your SQL (DML) statements like <b>INSERT INTO " . $ddl_table . " (" . str_replace("\n","",$bits[1]) . ") VALUES " . $hc . "</b> to populate this flat file data table.</h4>";
      $insql="SELECT * FROM " . $ddl_table;
     if (strpos($ddl_statement,'INSERT INTO ') === false && $ddl_table == explode(" ",$tnis)[0] && sizeof($bits) == 4 && strpos($insql,"SELECT * FROM ") !== false && strpos($insql,"_poll") !== false) {
      $bits=explode("|",$dbrecs[$i]);       
      $themes=explode(" ",str_replace("moviegenre","Favourite Movie Genre",str_replace("_"," ",str_replace("_poll","",str_replace("\n","",$bits[0])))));     
      $htitle="";    
      $hdelim="";    
      for ($ih=0; $ih<sizeof($themes); $ih++) {    
       if (strlen($themes[$ih]) > 1) {      
       $htitle.=$hdelim . strtoupper(substr($themes[$ih],0,1)) . strtolower(substr($themes[$ih],1));     
       } else {    
       $htitle.=$hdelim . $themes[$ih];    
       }    
       $hdelim=" ";
      }   
      $bonload=" onload=\" document.getElementById('mys').click();\" ";
      $hdatas=explode("~",str_replace("\n","",$bits[3]));     
      $hdata="";    
      $hdelim=",";    
      for ($ih=0; $ih<sizeof($hdatas); $ih++) {  
       $hdata.=$hdelim . "[~" . explode(",",$hdatas[$ih])[0] . "~," . explode(",",$hdatas[$ih])[1] . "]";    
      }  
      $fhtitle=$htitle;
      if (strpos($htitle,'avourite') === false && strpos($htitle,' ') === false) {
         $fhtitle="Favourite " . $htitle;
      }           
      if (str_replace("\n","",$bits[3]) != "") $formbits="<form target='myhiframe' action='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' method='POST'>
<input type='hidden' name='title' value='" . $fhtitle . "'></input>
<input type='hidden' name='onclick' value='y'></input>
<input type='hidden' name='task' value='" . $htitle ."'></input>
<input type='hidden' name='desc' value='Count'></input>
<input type='hidden' name='data' value='" . $hdata . "'></input>
<input id='mys' style='display:none;' type='submit' value='" . $fhtitle . "'></input></form>
<iframe style=width:100%;height:600px; name=myhiframe id=myhiframe src='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' title='Pie Chart'></iframe>";
     $tablemidbit="</td><td style=vertical-align:top;>" . $formbits;
    }
    } else if (sizeof($ddlb) > 1) {     
      if (strlen(str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0]))) > 0) {       
        $initialrec="";    
        if ((sizeof($ddlis) > 1) && strpos(str_replace("http:","",str_replace("https:","",$hshr)),$hrvs) !== false) {   
         $xddl_table=explode("(",explode(",",explode(";",explode(" ",$ddlis[1])[0])[0])[0])[0];
         $xddl_owner=str_replace("http:","",str_replace("https:","",$hshr));     
         if (sizeof($ddlb) >= 4 && $xddl_table == $ddl_table && $xddl_owner == $ddl_owner) {      
          $tnis=$xddl_table;
          $initialrec=str_replace("`","",str_replace("`'","",str_replace("'`","",str_replace("','",",",("`" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[-1 + sizeof($ddlb)])[0])) . "`")))));    
          $ddlis=explode("(", " ");   
         }
        }      
        $ndelim="";   
        //if (str_replace("\n","",$bits[3]) != "") $ndelim="~"; 
        if (isset($_POST['listddl'])) {
        if (strlen($_POST['listddl']) == 0) {
        $pp=rtrim($datais) . "\n" . $ddl_table . "\n|" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0])) . "\n|" . $ddl_owner . "^" . $_SERVER['REMOTE_ADDR'] . ";\n|" . "" . "\n`"; 
        $ppb=rtrim($datais) . "\n" . $ddl_table . "\n|" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0])) . "\n|" . $ddl_owner . "^" . $_SERVER['REMOTE_ADDR'] . ";\n|"; 
        file_put_contents($fis, rtrim($datais) . "\n" . $ddl_table . "\n|" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0])) . "\n|" . $ddl_owner . "^" . $_SERVER['REMOTE_ADDR'] . ";\n|" . lastmapping("",rtrim($dbrecs[$i]),$ndelim,$initialrec,str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0]))) . "\n`"); 
        } else {
        $pp=rtrim($datais) . "\n" . $ddl_table . "\n|" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0])) . "\n|" . $ddl_owner . "^" . $_SERVER['REMOTE_ADDR'] . ";" . urldecode($_POST['listddl']) . "\n|" . "" . "\n`"; 
        $ppb=rtrim($datais) . "\n" . $ddl_table . "\n|" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0])) . "\n|" . $ddl_owner . "^" . $_SERVER['REMOTE_ADDR'] . ";" . urldecode($_POST['listddl']) . "\n|"; 
        file_put_contents($fis, rtrim($datais) . "\n" . $ddl_table . "\n|" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0])) . "\n|" . $ddl_owner . "^" . $_SERVER['REMOTE_ADDR'] . ";" . urldecode($_POST['listddl']) . "\n|" . lastmapping("",rtrim($dbrecs[$i]),$ndelim,$initialrec,str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0]))) . "\n`"); 
        }
        } else {         
        $pp=rtrim($datais) . "\n" . $ddl_table . "\n|" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0])) . "\n|" . $ddl_owner . "^" . $_SERVER['REMOTE_ADDR'] . ";\n|" . "" . "\n`"; 
        $ppb=rtrim($datais) . "\n" . $ddl_table . "\n|" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0])) . "\n|" . $ddl_owner . "^" . $_SERVER['REMOTE_ADDR'] . ";\n|"; 
        file_put_contents($fis, rtrim($datais) . "\n" . $ddl_table . "\n|" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0])) . "\n|" . $ddl_owner . "^" . $_SERVER['REMOTE_ADDR'] . ";\n|" . lastmapping("",rtrim($dbrecs[$i]),$ndelim,$initialrec,str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0]))) . "\n`"); 
        }
        //file_put_contents($fis, rtrim($datais) . "\n" . $ddl_table . "\n|" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0])) . "\n|" . $ddl_owner . "^" . $_SERVER['REMOTE_ADDR'] . ";\n|" . lastmapping(rtrim($dbrecs[$i]) . $ndelim . $initialrec,rtrim($dbrecs[$i]),$ndelim,$initialrec,str_replace("\n","",$bits[1])) . "\n`"); 
        //file_put_contents($fis, $ppb . lastmapping("",rtrim($ppb),$ndelim,$initialrec,str_replace("\n","",str_replace("'","",explode(")",$ddlb[1])[0])) . "\n`")); 
        if ($initialrec != "") {    
         $initialrec="";    
         $insql="SELECT * FROM " . $ddl_table;
      if (str_replace("\n","",$bits[0]) == explode(" ",$tnis)[0] && sizeof($bits) == 4 && strpos($insql,"SELECT * FROM ") !== false && strpos($insql,"_poll") !== false) {       
      $themes=explode(" ",str_replace("moviegenre","Favourite Movie Genre",str_replace("_"," ",str_replace("_poll","",str_replace("\n","",$bits[0])))));     
      $htitle="";    
      $hdelim="";    
      for ($ih=0; $ih<sizeof($themes); $ih++) {    
       if (strlen($themes[$ih]) > 1) {      
       $htitle.=$hdelim . strtoupper(substr($themes[$ih],0,1)) . strtolower(substr($themes[$ih],1));     
       } else {    
       $htitle.=$hdelim . $themes[$ih];    
       }    
       $hdelim=" ";
      }   
      $bonload=" onload=\" document.getElementById('mys').click();\" ";
      $hdatas=explode("~",str_replace("\n","",$bits[3]));     
      $hdata="";    
      $hdelim=",";    
      for ($ih=0; $ih<sizeof($hdatas); $ih++) {  
       $hdata.=$hdelim . "[~" . explode(",",$hdatas[$ih])[0] . "~," . explode(",",$hdatas[$ih])[1] . "]";    
      }  
      $fhtitle=$htitle;
      if (strpos($htitle,'avourite') === false && strpos($htitle,' ') === false) {
         $fhtitle="Favourite " . $htitle;
      }           
      if (str_replace("\n","",$bits[3]) != "") $formbits="<form target='myhiframe' action='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' method='POST'>
<input type='hidden' name='title' value='" . $fhtitle . "'></input>
<input type='hidden' name='onclick' value='y'></input>
<input type='hidden' name='task' value='" . $htitle ."'></input>
<input type='hidden' name='desc' value='Count'></input>
<input type='hidden' name='data' value='" . $hdata . "'></input>
<input id='mys' style='display:none;' type='submit' value='" . $fhtitle . "'></input></form>
<iframe style=width:100%;height:600px; name=myhiframe id=myhiframe src='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' title='Pie Chart'></iframe>";
      $tablemidbit="</td><td style=vertical-align:top;>" . $formbits; 
    }
        }
        $datais=@file_get_contents($fis);
        $dbrecs=explode("`", $datais);    
        $ddl_exists=true;
      }
    }
  }     
  if ((sizeof($ddlis) > 1) && strpos(str_replace("http:","",str_replace("https:","",$hshr)),$hrvs) !== false) { 
    $ddl_table=explode("(",explode(",",explode(";",explode(" ",$ddlis[1])[0])[0])[0])[0];
    $tnis=$ddl_table;
    $ddl_owner=str_replace("http:","",str_replace("https:","",$hshr));
    for ($ij=0; $ij<sizeof($dbrecs); $ij++) {
     if (strpos($dbrecs[$ij],"|") !== false) {
      $bits=explode("|",$dbrecs[$ij]);
      //if (sizeof($bits) == 3) $bits[3]=""; 
      if (sizeof($bits) == 4) {
        if (str_replace("\n","",$bits[0]) == $ddl_table) $ddl_exists=true;
      }
     }
    }
    if (!$ddl_exists) { 
        $results="<h4>Your <i>" . $ddl_statement . "</i> can not be processed without a preceeding <b>CREATE TABLE " . $ddl_table . " (colname1,colname2,colname3)</b> type of Flat File DDL SQL statement.</h4>";
        $insql="SELECT * FROM " . $ddl_table;
      if (str_replace("\n","",$bits[0]) == explode(" ",$tnis)[0] && sizeof($bits) == 4 && strpos($insql,"SELECT * FROM ") !== false && strpos($insql,"_poll") !== false) {
      $themes=explode(" ",str_replace("moviegenre","Favourite Movie Genre",str_replace("_"," ",str_replace("_poll","",str_replace("\n","",$bits[0])))));     
      $htitle="";    
      $hdelim="";    
      for ($ih=0; $ih<sizeof($themes); $ih++) {    
       if (strlen($themes[$ih]) > 1) {      
       $htitle.=$hdelim . strtoupper(substr($themes[$ih],0,1)) . strtolower(substr($themes[$ih],1));     
       } else {    
       $htitle.=$hdelim . $themes[$ih];    
       }    
       $hdelim=" ";
      }   
      $bonload=" onload=\" document.getElementById('mys').click();\" ";
      $hdatas=explode("~",str_replace("\n","",$bits[3]));     
      $hdata="";    
      $hdelim=",";    
      for ($ih=0; $ih<sizeof($hdatas); $ih++) {  
       $hdata.=$hdelim . "[~" . explode(",",$hdatas[$ih])[0] . "~," . explode(",",$hdatas[$ih])[1] . "]";    
      }  
      $fhtitle=$htitle;
      if (strpos($htitle,'avourite') === false && strpos($htitle,' ') === false) {
         $fhtitle="Favourite " . $htitle;
      }           
      if (str_replace("\n","",$bits[3]) != "") $formbits="<form target='myhiframe' action='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' method='POST'>
<input type='hidden' name='title' value='" . $fhtitle . "'></input>
<input type='hidden' name='onclick' value='y'></input>
<input type='hidden' name='task' value='" . $htitle ."'></input>
<input type='hidden' name='desc' value='Count'></input>
<input type='hidden' name='data' value='" . $hdata . "'></input>
<input id='mys' style='display:none;' type='submit' value='" . $fhtitle . "'></input></form>
<iframe style=width:100%;height:600px; name=myhiframe id=myhiframe src='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' title='Pie Chart'></iframe>";
$tablemidbit="</td><td style=vertical-align:top;>" . $formbits;  
  }
    } else if (sizeof($ddlb) >= 3) {   
        $initialrec=str_replace("`","",str_replace("`'","",str_replace("'`","",str_replace("','",",",("`" . str_replace("\n","",str_replace("'","",explode(")",$ddlb[-1 + sizeof($ddlb)])[0])) . "`")))));    
    }
  }
}


    
for ($i=0; $i<sizeof($dbrecs); $i++) {
  if (strpos($dbrecs[$i],"|") !== false) {
    $bits=explode("|",$dbrecs[$i]);
    //if (sizeof($bits) == 3) $bits[3]=""; 
    $thisallowed=false;
    if (sizeof($bits) == 4) {
      $thisallowed=true;
      if (strpos($bits[2], "^") !== false) {
        $onlyallow=str_replace("http:","",str_replace("https:","",explode("^", $bits[2])[0]));
        if (explode("?",explode("#",str_replace("http:","",str_replace("https:","",$hshr)))[0])[0] != explode("?",explode("#",$onlyallow)[0])[0]) {
          $thisallowed=false; // not allowed to write or modify this database (=data table)
        } else if ($ddl_table == str_replace("\n","",$bits[0]) && $initialrec != "") {     
          $ndelim="";   
          if (str_replace("\n","",$bits[3]) != "") $ndelim="~";           
          $newdatais=str_replace(rtrim($dbrecs[$i]), lastmapping(rtrim($dbrecs[$i]) . $ndelim . $initialrec,rtrim($dbrecs[$i]),$ndelim,$initialrec,str_replace("\n","",$bits[1])), $datais);
          file_put_contents($fis, rev_filter($newdatais));     
          $datais=@file_get_contents($fis);    
          $dbrecs=explode("`", $datais);    
          $bits=explode("|",$dbrecs[$i]);
          //if (sizeof($bits) == 3) $bits[3]=""; 
          $initialrec="";    
          $insql="SELECT * FROM " . $ddl_table;
      if (str_replace("\n","",$bits[0]) == explode(" ",$tnis)[0] && sizeof($bits) == 4 && strpos($insql,"SELECT * FROM ") !== false && strpos($insql,"_poll") !== false) {
      $themes=explode(" ",str_replace("moviegenre","Favourite Movie Genre",str_replace("_"," ",str_replace("_poll","",str_replace("\n","",$bits[0])))));     
      $htitle="";    
      $hdelim="";    
      for ($ih=0; $ih<sizeof($themes); $ih++) {    
       if (strlen($themes[$ih]) > 1) {      
       $htitle.=$hdelim . strtoupper(substr($themes[$ih],0,1)) . strtolower(substr($themes[$ih],1));     
       } else {    
       $htitle.=$hdelim . $themes[$ih];    
       }    
       $hdelim=" ";
      }   
      $bonload=" onload=\" document.getElementById('mys').click();\" ";
      $hdatas=explode("~",str_replace("\n","",$bits[3]));     
      $hdata="";    
      $hdelim=",";    
      for ($ih=0; $ih<sizeof($hdatas); $ih++) {  
       $hdata.=$hdelim . "[~" . explode(",",$hdatas[$ih])[0] . "~," . explode(",",$hdatas[$ih])[1] . "]";    
      }  
      $fhtitle=$htitle;
      if (strpos($htitle,'avourite') === false && strpos($htitle,' ') === false) {
         $fhtitle="Favourite " . $htitle;
      }           
      if (str_replace("\n","",$bits[3]) != "") $formbits="<form target='myhiframe' action='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' method='POST'>
<input type='hidden' name='title' value='" . $fhtitle . "'></input>
<input type='hidden' name='onclick' value='y'></input>
<input type='hidden' name='task' value='" . $htitle ."'></input>
<input type='hidden' name='desc' value='Count'></input>
<input type='hidden' name='data' value='" . $hdata . "'></input>
<input id='mys' style='display:none;' type='submit' value='" . $fhtitle . "'></input></form>
<iframe style=width:100%;height:600px; name=myhiframe id=myhiframe src='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' title='Pie Chart'></iframe>";
      $tablemidbit="</td><td style=vertical-align:top;>" . $formbits;   
    }
        }
      }
    } 
    $ucollistbit="";
    $uwcollistbit="";
    $collistbit="";
    $blanks="";
    $dl="";
    $cdl="'";
    $acdl="";
    $aacdl="";
    $eqetc="<select title=EqEtc onchange='ltitle=String.fromCharCode(32);' onclick='ltitle=String.fromCharCode(32);' name=eq?><option value='='>=</option><option value='!='>!=</option><option value='<'>&lt;</option><option value='>'>&gt;</option><option value='<='>&lt;=</option><option value='>='>&gt;=</option><option value=' like '> like </option><option value=' not like '> not like </option></select>";
    $andor="<select title=AndOr onchange='ltitle=String.fromCharCode(32);' onclick='ltitle=String.fromCharCode(32);' name=ao?><option value=AND>AND</option><option value=OR>OR</option></select>";
    $selgen="<select title=SelGen onchange='ltitle=String.fromCharCode(32);' onclick='ltitle=String.fromCharCode(32);' name=n?></select>";
    $colblanks=explode(",",str_replace("\n","",$bits[1]));
      if (str_replace("\n","",$bits[0]) == explode(" ",$tnis)[0] && sizeof($bits) == 4 && strpos($insql,"SELECT * FROM ") !== false && strpos($insql,"_poll") !== false) {
      $themes=explode(" ",str_replace("moviegenre","Favourite Movie Genre",str_replace("_"," ",str_replace("_poll","",str_replace("\n","",$bits[0])))));     
      $htitle="";    
      $hdelim="";    
      for ($ih=0; $ih<sizeof($themes); $ih++) {    
       if (strlen($themes[$ih]) > 1) {      
       $htitle.=$hdelim . strtoupper(substr($themes[$ih],0,1)) . strtolower(substr($themes[$ih],1));     
       } else {    
       $htitle.=$hdelim . $themes[$ih];    
       }    
       $hdelim=" ";
      }   
      $bonload=" onload=\" document.getElementById('mys').click();\" ";
      $hdatas=explode("~",str_replace("\n","",$bits[3]));     
      $hdata="";    
      $hdelim=",";    
      for ($ih=0; $ih<sizeof($hdatas); $ih++) {  
       $hdata.=$hdelim . "[~" . explode(",",$hdatas[$ih])[0] . "~," . explode(",",$hdatas[$ih])[1] . "]";    
      }  
      $fhtitle=$htitle;
      if (strpos($htitle,'avourite') === false && strpos($htitle,' ') === false) {
         $fhtitle="Favourite " . $htitle;
      }           
      if (str_replace("\n","",$bits[3]) != "") $formbits="<form target='myhiframe' action='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' method='POST'>
<input type='hidden' name='title' value='" . $fhtitle . "'></input>
<input type='hidden' name='onclick' value='y'></input>
<input type='hidden' name='task' value='" . $htitle ."'></input>
<input type='hidden' name='desc' value='Count'></input>
<input type='hidden' name='data' value='" . $hdata . "'></input>
<input id='mys' style='display:none;' type='submit' value='" . $fhtitle . "'></input></form>
<iframe style=width:100%;height:600px; name=myhiframe id=myhiframe src='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' title='Pie Chart'></iframe>";
      $tablemidbit="</td><td style=vertical-align:top;>" . $formbits;  
    }
    if (sizeof($bits) == 4 && isset($_POST['isql']) && str_replace("\n","",$bits[0]) == $tnis) {
      $insql.=" (" . str_replace("\n","",$bits[1]) . ") VALUES (";
      $rows=explode("~",rtrim($bits[3]));
      if (str_replace("\n","",$bits[3]) != "") {
        if ($irecord == "") $irecord="~";
      }
    }
    $idelim="";

    for ($ii=0; $ii<sizeof($colblanks); $ii++) {
        $selgen=str_replace("</select>","<option value=" . $colblanks[$ii] . ">" . $colblanks[$ii] . "</option></select>",$selgen);

        if ($ii == 0) { // update where
          if (!isset($_POST['nw' . $colblanks[$ii]]) && isset($_POST['usql']) && str_replace("\n","",$bits[0]) == $tnis) {
            $updatenow=0;
          } else if (isset($_POST['eqq' . $colblanks[$ii]]) && isset($_POST['nw' . $colblanks[$ii]]) && isset($_POST['usql']) && str_replace("\n","",$bits[0]) == $tnis) {
            if (isset($_POST['ao' . $colblanks[$ii]])) $cwhereao=urldecode($_POST['ao' . $colblanks[$ii]]);
            $cwherefld=urldecode($_POST['nw' . $colblanks[$ii]]);
            $cwhereeq=urldecode($_POST['eqq' . $colblanks[$ii]]);
            $cwhereval=urldecode($_POST['ux_' . $colblanks[$ii]]);
            $cwhereset=" SET " . urldecode($_POST['un' . $colblanks[$ii]]) . "='" . urldecode($_POST['u' . $colblanks[$ii]]) . "'";
            $cwheretrues="0";
            $cwheretrue=true;
            $cwheredelim=",";
            $bitsd=str_replace("\n","",$bits[3]);
            $insql=str_replace(" SET 1=1 WHERE 1=1","",$insql) . " WHERE " . $cwherefld . $cwhereeq . "'" . $cwhereval . "'";
          }
        } else if ($cwheredelim != "" && isset($_POST['nw' . $colblanks[$ii]]) && isset($_POST['usql']) && str_replace("\n","",$bits[0]) == $tnis) {
            if (isset($_POST['ao' . $colblanks[$ii]])) $cwhereao.=$cwheredelim . urldecode($_POST['ao' . $colblanks[$ii]]);
            $cwherefld.=$cwheredelim . urldecode($_POST['nw' . $colblanks[$ii]]);
            $cwhereeq.=$cwheredelim . urldecode($_POST['eqq' . $colblanks[$ii]]);
            $cwhereval.=$cwheredelim . urldecode($_POST['ux_' . $colblanks[$ii]]);
            $cwheretrues.=$cwheredelim . "0";
            $cwheretrue=true;
            $cwheredelim=",";
            $bitsd=str_replace("\n","",$bits[3]);
            if (isset($_POST['un' . $colblanks[$ii]])) $cwhereset.=$cwheredelim . urldecode($_POST['un' . $colblanks[$ii]]) . "='" . urldecode($_POST['u' . $colblanks[$ii]]) . "'";
            $insql.=" " . urldecode($_POST['ao' . $colblanks[$ii]]) . " " . urldecode($_POST['nw' . $colblanks[$ii]]) . urldecode($_POST['eqq' . $colblanks[$ii]]) . "'" . urldecode($_POST['ux_' . $colblanks[$ii]]) . "'";
        } else if ($cwheredelim != "" && isset($_POST['un' . $colblanks[$ii]]) && isset($_POST['usql']) && str_replace("\n","",$bits[0]) == $tnis) {
			$cwhereset.=$cwheredelim . urldecode($_POST['un' . $colblanks[$ii]]) . "='" . urldecode($_POST['u' . $colblanks[$ii]]) . "'";
            $bitsd=str_replace("\n","",$bits[3]);
        }

        if ($ii == 0) { // delete where
          if (!isset($_POST['ynw' . $colblanks[$ii]]) && isset($_POST['dsql']) && str_replace("\n","",$bits[0]) == $tnis) {
            $deletenow=true;
          } else if (isset($_POST['yeqq' . $colblanks[$ii]]) && isset($_POST['ynw' . $colblanks[$ii]]) && isset($_POST['dsql']) && str_replace("\n","",$bits[0]) == $tnis) {
            if (isset($_POST['yao' . $colblanks[$ii]])) $cwhereao=urldecode($_POST['yao' . $colblanks[$ii]]);
            $cwherefld=urldecode($_POST['ynw' . $colblanks[$ii]]);
            $cwhereeq=urldecode($_POST['yeqq' . $colblanks[$ii]]);
            $cwhereval=urldecode($_POST['yux_' . $colblanks[$ii]]);
            $cwheretrues="0";
            $cwheretrue=true;
            $cwheredelim=",";
            $insql.=" WHERE " . $cwherefld . $cwhereeq . "'" . $cwhereval . "'";
            $bitsd=str_replace("\n","",$bits[3]);
          }
        } else if ($cwheredelim != "" && isset($_POST['ynw' . $colblanks[$ii]]) && isset($_POST['dsql']) && str_replace("\n","",$bits[0]) == $tnis) {
            if (isset($_POST['yao' . $colblanks[$ii]])) $cwhereao.=$cwheredelim . urldecode($_POST['yao' . $colblanks[$ii]]);
            $cwherefld.=$cwheredelim . urldecode($_POST['ynw' . $colblanks[$ii]]);
            $cwhereeq.=$cwheredelim . urldecode($_POST['yeqq' . $colblanks[$ii]]);
            $cwhereval.=$cwheredelim . urldecode($_POST['yux_' . $colblanks[$ii]]);
            $cwheretrues.=$cwheredelim . "0";
            $cwheretrue=true;
            $cwheredelim=",";
            $insql.=" " . urldecode($_POST['yao' . $colblanks[$ii]]) . " " . urldecode($_POST['ynw' . $colblanks[$ii]]) . urldecode($_POST['yeqq' . $colblanks[$ii]]) . "'" . urldecode($_POST['yux_' . $colblanks[$ii]]) . "'";
            $bitsd=str_replace("\n","",$bits[3]);
        }
        
        if ($ii == 0) { // select where
          if (!isset($_POST['knw' . $colblanks[$ii]]) && isset($_POST['ssql']) && str_replace("\n","",$bits[0]) == $tnis) {
            $shownow=0;
          } else if (isset($_POST['keqq' . $colblanks[$ii]]) && isset($_POST['knw' . $colblanks[$ii]]) && isset($_POST['ssql']) && str_replace("\n","",$bits[0]) == $tnis) {
            if (isset($_POST['kao' . $colblanks[$ii]])) $cwhereao==urldecode($_POST['kao' . $colblanks[$ii]]);
            $cwherefld=urldecode($_POST['knw' . $colblanks[$ii]]);
            $cwhereeq=urldecode($_POST['keqq' . $colblanks[$ii]]);
            $cwhereval=urldecode($_POST['kux_' . $colblanks[$ii]]);
            $cwheretrues="0";
            $cwheretrue=true;
            $cwheredelim=",";
            $insql.=" WHERE " . $cwherefld . $cwhereeq . "'" . $cwhereval . "'";
          }
        } else if ($cwheredelim != "" && isset($_POST['knw' . $colblanks[$ii]]) && isset($_POST['ssql']) && str_replace("\n","",$bits[0]) == $tnis) {
            if (isset($_POST['kao' . $colblanks[$ii]])) $cwhereao.=$cwheredelim . urldecode($_POST['kao' . $colblanks[$ii]]);
            $cwherefld.=$cwheredelim . urldecode($_POST['knw' . $colblanks[$ii]]);
            $cwhereeq.=$cwheredelim . urldecode($_POST['keqq' . $colblanks[$ii]]);
            $cwhereval.=$cwheredelim . urldecode($_POST['kux_' . $colblanks[$ii]]);
            $cwheretrues.=$cwheredelim . "0";
            $cwheretrue=true;
            $cwheredelim=",";
            $insql.=" " . urldecode($_POST['kao' . $colblanks[$ii]]) . " " . urldecode($_POST['knw' . $colblanks[$ii]]) . urldecode($_POST['keqq' . $colblanks[$ii]]) . "'" . urldecode($_POST['kux_' . $colblanks[$ii]]) . "'";
        }
        if (isset($_POST[$colblanks[$ii]]) && isset($_POST['isql']) && str_replace("\n","",$bits[0]) == $tnis) {
          $irecord.=($idelim . str_replace('`','',str_replace('~','',str_replace(',','',str_replace('|','',urldecode($_POST[$colblanks[$ii]]))))));
          $insql.=($idelim . "'" . str_replace('`','',str_replace('~','',str_replace(',','',str_replace('|','',urldecode($_POST[$colblanks[$ii]])))))) . "'";
          $idelim=",";
        }
    }
    if (isset($_POST['isql']) && sizeof($iwhatisleft) == 2 && str_replace("\n","",$bits[0]) == $tnis) {
        $insql.=")";
        $newdatais=str_replace(rtrim($dbrecs[$i]), rtrim($dbrecs[$i]) . $irecord, $datais);
        file_put_contents($fis, rev_filter($newdatais));
    } 
    if (isset($_POST['dsql']) && sizeof($dwhatisleft) == 2 && str_replace("\n","",$bits[0]) == $tnis && ($deletenow || $bitsd != "")) {
        if ($bitsd != "") {
       $gotridof="; /* ... got rid of the following record(s) ... */";
       $jnum=0;
       for ($qi=0; $qi<sizeof($dbrecs); $qi++) {
        if (str_replace("\n","",explode("|",$dbrecs[$qi])[0]) == explode(" ",$tnis)[0]) {
          $bits=explode("|",$dbrecs[$qi]);
          //if (sizeof($bits) == 3) $bits[3]=""; 
      if (str_replace("\n","",$bits[0]) == explode(" ",$tnis)[0] && sizeof($bits) == 4 && strpos($insql,"SELECT * FROM ") !== false && strpos($insql,"_poll") !== false) {
      $themes=explode(" ",str_replace("moviegenre","Favourite Movie Genre",str_replace("_"," ",str_replace("_poll","",str_replace("\n","",$bits[0])))));     
      $htitle="";    
      $hdelim="";    
      for ($ih=0; $ih<sizeof($themes); $ih++) {    
       if (strlen($themes[$ih]) > 1) {      
       $htitle.=$hdelim . strtoupper(substr($themes[$ih],0,1)) . strtolower(substr($themes[$ih],1));     
       } else {    
       $htitle.=$hdelim . $themes[$ih];    
       }    
       $hdelim=" ";
      }  
      $bonload=" onload=\" document.getElementById('mys').click();\" ";
      $hdatas=explode("~",str_replace("\n","",$bits[3]));     
      $hdata="";    
      $hdelim=",";    
      for ($ih=0; $ih<sizeof($hdatas); $ih++) {  
       $hdata.=$hdelim . "[~" . explode(",",$hdatas[$ih])[0] . "~," . explode(",",$hdatas[$ih])[1] . "]";    
      }  
      $fhtitle=$htitle;
      if (strpos($htitle,'avourite') === false && strpos($htitle,' ') === false) {
         $fhtitle="Favourite " . $htitle;
      }           
      if (str_replace("\n","",$bits[3]) != "") $formbits="<form target='myhiframe' action='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' method='POST'>
<input type='hidden' name='title' value='" . $fhtitle . "'></input>
<input type='hidden' name='onclick' value='y'></input>
<input type='hidden' name='task' value='" . $htitle ."'></input>
<input type='hidden' name='desc' value='Count'></input>
<input type='hidden' name='data' value='" . $hdata . "'></input>
<input id='mys' style='display:none;' type='submit' value='" . $fhtitle . "'></input></form>
<iframe style=width:100%;height:600px; name=myhiframe id=myhiframe src='http://www.rjmprogramming.com.au/PHP/PieChart/pie_chart.php' title='Pie Chart'></iframe>";
      $tablemidbit="</td><td style=vertical-align:top;>" . $formbits;  
    }
          if (sizeof($bits) == 4) {
            $yellow="orange";
            $results.=$tableprefix . "<table border=20 cellspacing=15 cellpadding=15><thead><tr><th>#</th></tr></thead><tbody></tbody></table><br><br>";
            $cols=explode(",",$bits[1]);
            for ($j=0; $j<sizeof($cols); $j++) {
              $results=str_replace("</tr>", "<th><b>" . str_replace("\n","",$cols[$j]) . "</b></th></tr>", $results);
            }
            $rows=explode("~",rtrim($bits[3]));
            if (rtrim($bits[3]) != "") {             
            for ($j=0; $j<sizeof($rows); $j++) {
             $rowcols=explode(",", $rows[$j]);
             $show=false;
             for ($jj=0; $jj<sizeof($rowcols); $jj++) {
               if ($jj == 0) $show=isrec_relevant(reverse_filter($rows[$j]), str_replace("\n","",$bits[1]), $j, false);
             }
             if ($show) {
               $results=str_replace("</tbody>", "<tr><td><i>" . ($jnum + 1) . "</i></td></tr></tbody>", $results);
               $jnum++;
             }
             for ($jj=0; $jj<sizeof($rowcols); $jj++) {
              //$show=false;
              //if ($jj == 0) $show=isrec_relevant(reverse_filter($rows[$j]), str_replace("\n","",$bits[1]), $j, false);
              if ($show) $results=str_replace("</tr></tbody>", "<td>" . reverse_filter($rowcols[$jj]) . "</td></tr></tbody>", $results);
             }
            }
            }
            if ($jnum == 1) {
             $results.="<h4 id=zrs>" . $jnum . " row selected.</h4>" . $tablemidbit . $tablesuffix;
            } else {
             $results.="<h4 id=zrs>" . $jnum . " rows selected.</h4>" . $tablemidbit . $tablesuffix;
            }
            if ($shownow < 0) $results="<h4 id=zrs>No rows found with " . rev_filter($qinsql) . "</h4>" . $tablemidbit . $tablesuffix;
          } else {
            $results="<p>Data table called " . explode(" ",$whatisleft[1])[0] . " found in flat file database has invalid data content.</p><br><br>" . $tablemidbit . $tablesuffix;
          }
        }
       }
       //echo $bitsd . "<br><br>";
      }
        $deletenow=true;
        if (rtrim($bits[3]) != "") {
          if ($bitsd != "") {
            //if (strpos(rtrim($dbrecs[$i]),rtrim($bits[3])) !== false) echo "is " . rtrim($bitsd) . " in " . rtrim($dbrecs[$i]);
            $newdatais=str_replace(rtrim($dbrecs[$i]), str_replace(rtrim($bits[3]),rtrim($bitsd),rtrim($dbrecs[$i])), $datais);
          } else {
            $newdatais=str_replace(rtrim($dbrecs[$i]), str_replace(rtrim($bits[3]),"",rtrim($dbrecs[$i])), $datais);
          }
          file_put_contents($fis, rev_filter($newdatais));
        }
    } 


    if (isset($_POST['usql']) && sizeof($uwhatisleft) == 2 && str_replace("\n","",$bits[0]) == $tnis && ($updatenow >= 0 || $bitsd != "")) {
        if ($bitsd != "") {
       $gotridof="; /* ... updated the following record(s) ... */";
       $jnum=0;
       for ($qi=0; $qi<sizeof($dbrecs); $qi++) {
        if (str_replace("\n","",explode("|",$dbrecs[$qi])[0]) == explode(" ",$tnis)[0]) {
          $bits=explode("|",$dbrecs[$qi]);
          //if (sizeof($bits) == 3) $bits[3]=""; 
          if (sizeof($bits) == 4) {
            $yellow="orange";
            $results.=$tableprefix . "<table border=20 cellspacing=15 cellpadding=15><thead><tr><th>#</th></tr></thead><tbody></tbody></table><br><br>";
            $cols=explode(",",$bits[1]);
            for ($j=0; $j<sizeof($cols); $j++) {
              $results=str_replace("</tr>", "<th><b>" . str_replace("\n","",$cols[$j]) . "</b></th></tr>", $results);
            }
            $rows=explode("~",rtrim($bits[3]));
            if (rtrim($bits[3]) != "") {   
            for ($j=0; $j<sizeof($rows); $j++) {
             $rowcols=explode(",", $rows[$j]);
             $show=false;
             for ($jj=0; $jj<sizeof($rowcols); $jj++) {
               if ($jj == 0) $show=isrec_relevant(reverse_filter($rows[$j]), str_replace("\n","",$bits[1]), $j, false);
             }
             if ($show) {
               $results=str_replace("</tbody>", "<tr><td><i>" . ($jnum + 1) . "</i></td></tr></tbody>", $results);
               $jnum++;
             }
             for ($jj=0; $jj<sizeof($rowcols); $jj++) {
              //$show=false;
              //if ($jj == 0) $show=isrec_relevant(reverse_filter($rows[$j]), str_replace("\n","",$bits[1]), $j, false);
              if ($show) $results=str_replace("</tr></tbody>", "<td>" . reverse_filter($rowcols[$jj]) . "</td></tr></tbody>", $results);
             }
            } 
            }
            if ($jnum == 1) {
             $results.="<h4 id=zrs>" . $jnum . " row selected.</h4>" . $tablemidbit . $tablesuffix;
            } else {
             $results.="<h4 id=zrs>" . $jnum . " rows selected.</h4>" . $tablemidbit . $tablesuffix;
            }
            if ($shownow < 0) $results="<h4 id=zrs>No rows found with " . rev_filter($qinsql) . "</h4>" . $tablemidbit . $tablesuffix;
          } else {
            $results="<p>Data table called " . explode(" ",$whatisleft[1])[0] . " found in flat file database has invalid data content.</p><br><br>" . $tablemidbit . $tablesuffix;
          }
        }
       }
       //echo $bitsd . "<br><br>";
      }
        $updatenow=0;
        if (rtrim($bits[3]) != "") {
          if ($bitsd != "") {
            //if (strpos(rtrim($dbrecs[$i]),rtrim($bits[3])) !== false) echo "is " . rtrim($bitsd) . " in " . rtrim($dbrecs[$i]);
            $newdatais=str_replace(rtrim($dbrecs[$i]), str_replace(rtrim($bits[3]),rtrim($bitsd),rtrim($dbrecs[$i])), $datais);
          } else {
            $newdatais=str_replace(rtrim($dbrecs[$i]), str_replace(rtrim($bits[3]),"",rtrim($dbrecs[$i])), $datais);
          }
          file_put_contents($fis, rev_filter($newdatais));
        }
    } 



    for ($ii=0; $ii<sizeof($colblanks); $ii++) {
        $blanks.=$dl . "''";
        $ucollistbit.=$aacdl . str_replace("'","",$cdl) . str_replace(" value=" . $colblanks[$ii], " selected value=" . $colblanks[$ii], str_replace("?",$colblanks[$ii],$selgen)) . "=" . str_replace(",","",$cdl) . "<input onblur=filter(this); onclick='ltitle=this.title;' title='Special ++ or -- or +=[number] or -=[number] or /=[number] or *=[number] or %=[number] can apply to numeric existant data if preceeded by one space' style=display:inline; name=" .  $colblanks[$ii] . " type=text value=></input>" . str_replace(",","",str_replace(",'","'</div>",$cdl));
        $uwcollistbit.=$acdl . str_replace(" value=" . $colblanks[$ii], " selected value=" . $colblanks[$ii], str_replace("?","w" . $colblanks[$ii],$selgen)) . str_replace("?","q" . $colblanks[$ii],$eqetc) . str_replace(",","",$cdl) . "<input onblur=filter(this); onclick=ltitle=this.title; title=Where style=display:inline; name=ux_" .  $colblanks[$ii] . " type=text value=></input>" . str_replace(",","",str_replace(",'","'</div>",$cdl));
        $collistbit.=$cdl . "<input onblur=filter(this); onclick=ltitle=this.title; title=" .  $colblanks[$ii] . " style=display:inline; name=" .  $colblanks[$ii] . " type=text value=></input>" . str_replace(",","",$cdl);
        $dl=",";
        $cdl=",'";
        if ($ii < (-1 + sizeof($colblanks))) {
          $acdl=" <div style=display:inline; id=cb_" .  $colblanks[1 + $ii] . " onclick=oc(this); title=ClickDeletes> " . str_replace("?",$colblanks[1 + $ii],$andor) . " ";
          $aacdl="<div style=display:inline; id=bc_" .  $colblanks[1 + $ii] . " onclick=oc(this); title=ClickDeletes>";
        }
    }
    $insideoptions.="<option title=\"" . explode("\n", $bits[1])[0] . "|" . $blanks . "|" . $collistbit . "|" . $ucollistbit . "|" . $uwcollistbit . "\" value='" . str_replace("\n","",explode("|",$dbrecs[$i])[0]) . "'>" . str_replace("\n","",explode("|",$dbrecs[$i])[0]) . "</option>";
    if ($thisallowed) $allowed_insideoptions.="<option title=\"" . explode("\n", $bits[1])[0] . "|" . $blanks . "|" . $collistbit . "|" . $ucollistbit . "|" . $uwcollistbit . "\" value='" . str_replace("\n","",explode("|",$dbrecs[$i])[0]) . "'>" . str_replace("\n","",explode("|",$dbrecs[$i])[0]) . "</option>";
  }
}


$ask="<form target='myiframe' action='./flat_file_engine.php' method='POST' id='mysqlform'>
<input type='hidden' name='sql' id='sql' value='SELECT * FROM '></input>
<div id='dselect' style='background-color:lightgreen;'>SELECT SQL to process<div id=ddselect style=display:none;> (please note that clicking between non-initial WHERE clause element part bits can remove that clause and clicking WHERE itself deletes all)</div>:<br> SELECT * FROM <select name=stable onchange=' if (this.value.length > 0) { document.getElementById(\"ddselect\").style.display=\"inline\"; document.getElementById(\"suwcollist\").innerHTML=\" <a style=text-decoration:none;cursor:pointer; onclick=ocsuw();>WHERE</a> \" + this.options[this.selectedIndex].title.split(\"|\")[4].replace(/ name=/g,\" name=k\"); document.getElementById(\"sql\").value=\"SELECT * FROM \" + this.value;  document.getElementById(\"ssql\").style.display=\"inline\"; } '><option value=>Please choose flat file data table name below ...</option>" . $insideoptions . "</select><br> <div title=ClickDeletes style=display:inline; id=suwcollist></div></div><br><br>
<hr></hr>
<div id='dinsert' style='background-color:lightblue;'>INSERT SQL to process:<br> INSERT INTO <select name=itable onchange=' if (this.value.length > 0) { document.getElementById(\"icollist\").innerHTML=\"(\" + this.options[this.selectedIndex].title.split(\"|\")[0] + \")\"; document.getElementById(\"sql\").value=\"INSERT INTO \" + this.value + \" (\" + String.fromCharCode(39) + this.options[this.selectedIndex].title.split(\"|\")[0].replace(/,/g,String.fromCharCode(39) + String.fromCharCode(44) + String.fromCharCode(39)) + String.fromCharCode(39) + \") VALUES (\" + this.options[this.selectedIndex].title.split(\"|\")[1] + \")\"; document.getElementById(\"collist\").innerHTML=this.options[this.selectedIndex].title.split(\"|\")[2]; document.getElementById(\"isql\").style.display=\"inline\"; } '><option value=>Please choose flat file data table name below ...</option>" . $allowed_insideoptions . "</select> <div style=display:inline; id=icollist></div> VALUES (<div style=display:inline; id='collist'>''</div>)</div><br><br>
<hr></hr>
<div id='dupdate' style='background-color:lightgray;'>UPDATE SQL to process<div id=ddupdate style=display:none;> (please note that clicking between non-initial SET and/or WHERE clause element part bits can remove that clause)</div>:<br> UPDATE <select name=utable onchange=' if (this.value.length > 0) {  document.getElementById(\"ddupdate\").style.display=\"inline\";   document.getElementById(\"sql\").value=\"UPDATE \" + this.value + \" SET 1=1\"; document.getElementById(\"ucollist\").innerHTML=this.options[this.selectedIndex].title.split(\"|\")[3].replace(/ name=/g,\" name=u\"); document.getElementById(\"uwcollist\").innerHTML=this.options[this.selectedIndex].title.split(\"|\")[4];  document.getElementById(\"usql\").style.display=\"inline\"; } '><option value=>Please choose flat file data table name below ...</option>" . $allowed_insideoptions . "</select><br> SET <div style=display:inline; id=ucollist>1=1</div><br> WHERE <div style=display:inline; id=uwcollist>1=1</div></div><br><br>
<hr></hr>
<div id='ddelete' style='background-color:pink;'>DELETE SQL to process<div id=dddelete style=display:none;> (please note that clicking between non-initial WHERE clause element part bits can remove that clause and clicking WHERE itself deletes all)</div>:<br> DELETE FROM <select name=dtable onchange=' if (this.value.length > 0) {  document.getElementById(\"dddelete\").style.display=\"inline\";   document.getElementById(\"suwdcollist\").innerHTML=\" <a style=text-decoration:none;cursor:pointer; onclick=ocsuwd();>WHERE</a> \" + this.options[this.selectedIndex].title.split(\"|\")[4].replace(/ name=/g,\" name=y\");  document.getElementById(\"sql\").value=\"DELETE FROM \" + this.value;  document.getElementById(\"dsql\").style.display=\"inline\"; } '><option value=>Please choose flat file data table name below ...</option>" . $allowed_insideoptions . "</select><br> <div title=ClickDeletes style=display:inline; id=suwdcollist></div></div><br><br>
<hr></hr>
<input onclick=\" document.getElementById('myiframe').style.display='block'; location.href='#ssql'; \" name='ssql' id='ssql' type='submit' value='Process SELECT SQL Above' style='display:none;background-color:lightgreen;'></input>
<input onclick=\" document.getElementById('myiframe').style.display='block'; \" name='isql' id='isql' type='submit' value='Process INSERT SQL Above' style='display:none;background-color:lightblue;'></input>
<input onclick=\" document.getElementById('myiframe').style.display='block'; \" name='usql' id='usql' type='submit' value='Process UPDATE SQL Above' style='display:none;background-color:lightgray;'></input>
<input onclick=\" document.getElementById('myiframe').style.display='block'; \" name='dsql' id='dsql' type='submit' value='Process DELETE SQL Above' style='display:none;background-color:pink;'></input>
</form><iframe style='display:none;width:100%;height:1200px;' name='myiframe' id='myiframe' src='./flat_file_engine.php?first=y'></iframe>";

if ($cwhereset != "") {
  $insql=str_replace(" WHERE ", " " . $cwhereset . " WHERE ",$insql);
  $cwhereset="";
}

if ($datais != "") {
  if ($insql != "") {
    if (strpos(rev_filter($insql), "UPDATE ") !== false) {
    $whatisleft=["",$tnis];
    } else {
    $whatisleft=explode("SELECT * FROM ", str_replace("DELETE FROM ","SELECT * FROM ",rev_filter($insql)));
    }
    if (sizeof($whatisleft) > 1) {
      if ($whatisleft[1] == "") {
       $results="<p>Nothing much to do.</p><br><br>";
      } else if (strpos($insideoptions,">" . explode(" ",$whatisleft[1])[0] . "<") === false) {
       $results="<p>No data table called " . explode(" ",$whatisleft[1])[0] . " found in flat file database.</p><br><br>";
      } else {
       $results="<h4>Results for ... " . rev_filter($insql) . $gotridof . "</h4><br>";
       $jnum=0;
       for ($i=0; $i<sizeof($dbrecs); $i++) {
        if (str_replace("\n","",explode("|",$dbrecs[$i])[0]) == explode(" ",$whatisleft[1])[0]) {
          $bits=explode("|",$dbrecs[$i]);
          //if (sizeof($bits) == 3) $bits[3]=""; 
          if (sizeof($bits) == 4) {
            $yellow="orange";
            $results.=$tableprefix . "<table border=20 cellspacing=15 cellpadding=15><thead><tr><th>#</th></tr></thead><tbody></tbody></table><br><br>";
            $cols=explode(",",$bits[1]);
            for ($j=0; $j<sizeof($cols); $j++) {
              $results=str_replace("</tr>", "<th><b>" . str_replace("\n","",$cols[$j]) . "</b></th></tr>", $results);
            }
            $rows=explode("~",rtrim($bits[3]));
            if (rtrim($bits[3]) != "") {
            for ($j=0; $j<sizeof($rows); $j++) {
             $rowcols=explode(",", $rows[$j]);
             $show=false;
             for ($jj=0; $jj<sizeof($rowcols); $jj++) {
               if ($jj == 0) $show=isrec_relevant(reverse_filter($rows[$j]), str_replace("\n","",$bits[1]), $j, false);
             }
             if ($show) {
               $results=str_replace("</tbody>", "<tr><td><i>" . ($jnum + 1) . "</i></td></tr></tbody>", $results);
               $jnum++;
             }
             for ($jj=0; $jj<sizeof($rowcols); $jj++) {
              //$show=false;
              //if ($jj == 0) $show=isrec_relevant(reverse_filter($rows[$j]), str_replace("\n","",$bits[1]), $j, false);
              if ($show) $results=str_replace("</tr></tbody>", "<td>" . reverse_filter($rowcols[$jj]) . "</td></tr></tbody>", $results);
             }
            }
            }
            if ($jnum == 1) {
             $results.="<h4 id=zrs>" . $jnum . " row selected.</h4>" . $tablemidbit . $tablesuffix;
            } else {
             $results.="<h4 id=zrs>" . $jnum . " rows selected.</h4>" . $tablemidbit . $tablesuffix;
            }
            if ($shownow < 0) $results="<h4 id=zrs>No rows found with " . rev_filter($insql) . "</h4>" . $tablemidbit . $tablesuffix;
          } else {
            $results="<p>Data table called " . explode(" ",$whatisleft[1])[0] . " found in flat file database has invalid data content.</p><br><br>" . $tablemidbit . $tablesuffix;
          }
        }
       }
      }
    } else if (isset($_POST['dsql']) && sizeof($dwhatisleft) == 2 && deletenow) {
      $results="<p>Record(s) deleted via " . rev_filter($insql) . ";</p><br><br>";
    } else if (isset($_POST['usql']) && sizeof($uwhatisleft) == 2) {
      if ($cwhereset != "") {
       $insql=str_replace(" WHERE ", " " . $cwhereset . " WHERE ",$insql);
       $cwhereset="";
      }
      $results="<p>Record(s) updated via " . rev_filter($insql) . ";</p><br><br>";
    } else if (isset($_POST['isql']) && sizeof($iwhatisleft) == 2) {
      $results="<p>Record inserted via " . rev_filter($insql) . ";</p><br><br>";
    } else {
      $results="<p>Nothing to do for " . rev_filter($insql) . ";</p><br><br>";
    }
  }
  echo "<!doctype html<html><head><title>Flat file data source engine - RJM Programming - April, 2017</title><scr" . "ipt type='text/javascript'> var ltitle='ClickDeletes'; " . $cfilter . " function oc(othis) { if (ltitle == 'ClickDeletes') { othis.innerHTML=String.fromCharCode(32); } ltitle='ClickDeletes';  } function ocsuw() { document.getElementById('suwcollist').innerHTML='';  }  function ocsuwd() { document.getElementById('suwdcollist').innerHTML='';  } </scr" . "ipt></head><body " . $bonload . " style='background-color:" . $yellow . ";'><h1>Flat File SQL Engine</h1><h3>RJM Programming</h3><h3>April, 2017</h3>" . $results . $ask . "</body></html>";
} else {
  echo "<!doctype html<html><head><title>Flat file data source engine - RJM Programming - April, 2017</title><scr" . "ipt type='text/javascript'> var ltitle='ClickDeletes'; " . $cfilter . " function oc(othis) { if (ltitle == 'ClickDeletes') { othis.innerHTML=String.fromCharCode(32); } ltitle='ClickDeletes';  } function ocsuw() { document.getElementById('suwcollist').innerHTML='';  }  function ocsuwd() { document.getElementById('suwdcollist').innerHTML='';  } </scr" . "ipt></head><body " . $bonload . " style='background-color:" . $yellow . ";' onload=\" alert('Sorry, but no flat file data source found.'); \"></body></html>";
}
}
?>

