示例#1
0
文件: w.php 项目: serj-43/db-script
function importexporttbl()
{
    global $prdbdata;
    global $prauth;
    global $ADM;
    global $pr;
    global $sd;
    global $tbl;
    global $write;
    //if (($write==cmsg("A_IMPEXP"))OR($write==cmsg("A_IE_DEST"))OR($write==cmsg("A_IE_SRC"))OR($write==cmsg("A_IE_START"))) { echo "";} else  { return;} // недоперенесено куда надо.
    global $sd17;
    global $addmode;
    global $send;
    global $views;
    global $tbl1;
    global $tbl2;
    global $totalbas;
    global $filbas, $codekey, $usecomma2x;
    if ($codekey == 7) {
        demo();
    }
    if ($prauth[$ADM][10] < 2) {
        lprint("ACCDEN");
        exit;
    }
    if ($prauth[$ADM][2] == false) {
        lprint("ACCDEN");
        exit;
    }
    //не разрешает администрировать не имея этого права - защита от альтернативного входа ($prauth[$ADM][10]<2)
    if ($prauth[$ADM][16] == 0) {
        echo cmsg(CONV_NOTE) . "<br>";
    }
    ?>
 <form action=w.php method=post><?php 
    hidekey("vID", $vID);
    hidekey("colfind", $colfind);
    hidekey("tbl1", $tbl1);
    hidekey("tbl2", $tbl2);
    hidekey("ietbl", 1);
    // colfind - пока не подключен будет развертыватся
    for ($a = 0; $prdbdata[$a] == true; $a++) {
        $k = count($prdbdata);
        $l = $k + 1;
        $filbas = $prdbdata[$a][0];
        $bas[$a] = $prdbdata[$a][1];
    }
    // $k= count($db) - вычисление кол-ва столбцов
    // c7 0 - select  c7 1 - start
    $pr16 = $pr[16];
    echo cmsg("A_CONV_SRC") . "<select name = tbl1 size = " . $pr[2] . ">";
    for ($a = 0; $a < $totalbas; $a++) {
        echo "<option value={$a} " . ("selected" and $a == $tbl1) . ">" . $bas[$a] . "</option>";
        //		if ($a!==$tbl) echo "<option value=$a >".$bas[$a]."</option>";
        //		if ($a===$tbl) {echo "<option value=$a ".(("selected") and ($a==$tbl)).">".$bas[$a]."</option>";}
    }
    //PART OF ID tbl
    $filbas = $prdbdata[$tbl1][0];
    $namebas = $prdbdata[$tbl1][1];
    $needscr = $prdbdata[$tbl1][2];
    $scrdir = $filbas . "scr";
    $formatscr = $prdbdata[$tbl1][3];
    $category = $prdbdata[$tbl1][4];
    $tablemysqlselect = $prdbdata[$tbl1][5];
    if ($tablemysqlselect === "") {
        $tablemysqlselect = 0;
    }
    //reset to default
    $hostmysqlselect = $prdbdata[$tbl1][6];
    if ($hostmysqlselect === "") {
        $hostmysqlselect = 0;
    }
    //reset to default
    $categorymode = $prdbdata[$tbl1][7];
    $scrcolumn = $prdbdata[$tbl1][8];
    $tblmysqlselect = $prdbdata[$tbl1][9];
    $md1column = $prdbdata[$tbl1][10];
    if ($md1column === "") {
        $md1column = 1;
    }
    //reset to default
    $md2column = $prdbdata[$tbl1][11];
    if ($md2column === "") {
        $md2column = 0;
    }
    //reset to default
    $dbtype = $prdbdata[$tbl1][12];
    $writeright = $prdbdata[$tbl1][13];
    $needrights = $prdbdata[$tbl1][14];
    $virtualid = $prdbdata[$tbl1][15];
    $reserved16 = $prdbdata[$tbl1][16];
    $reserved17 = $prdbdata[$tbl1][17];
    //найден код требуемой базы
    $filbas = $prdbdata[$tbl1][0];
    if (isset($colfind)) {
        $colfind = $md2column;
    }
    submitkey("write", "A_CONV_SRC_CHG");
    ?>
 </form>
<form action=w.php method=post>
<?php 
    hidekey("vID", $vID);
    hidekey("colfind", $colfind);
    hidekey("tbl1", $tbl1);
    hidekey("tbl2", $tbl2);
    hidekey("ietbl", 1);
    // colfind - пока не подключен будет развертыватся
    for ($a = 0; $prdbdata[$a] == true; $a++) {
        $k = count($prdbdata);
        $l = $k + 1;
        $filbas = $prdbdata[$a][0];
        $bas[$a] = $prdbdata[$a][1];
    }
    // $k= count($db) - вычисление кол-ва столбцов// c7 0 - select  c7 1 - start
    $pr16 = $pr[16];
    echo cmsg("A_CONV_DEST") . " <select name = tbl2 size = " . $pr[2] . ">";
    for ($a = 0; $a < $totalbas; $a++) {
        echo "<option value={$a} " . ("selected" and $a == $tbl2) . ">" . $bas[$a] . "</option>";
        //		if ($a!==$tbl) echo "<option value=$a >".$bas[$a]."</option>";
        //		if ($a===$tbl) {echo "<option value=$a ".(("selected") and ($a==$tbl)).">".$bas[$a]."</option>";}
    }
    //PART OF ID tbl
    $filbas2 = $prdbdata[$tbl2][0];
    $namebas2 = $prdbdata[$tbl2][1];
    $needscr2 = $prdbdata[$tbl2][2];
    $scrdir2 = $filbas2 . "scr";
    $formatscr2 = $prdbdata[$tbl2][3];
    $category2 = $prdbdata[$tbl2][4];
    $tablemysqlselect2 = $prdbdata[$tbl2][5];
    if ($tablemysqlselect2 === "") {
        $tablemysqlselect = 0;
    }
    //reset to default
    $hostmysqlselect2 = $prdbdata[$tbl2][6];
    if ($hostmysqlselect2 === "") {
        $hostmysqlselect = 0;
    }
    //reset to default
    $categorypr4 = $prdbdata[$tbl2][7];
    $scrcolumn2 = $prdbdata[$tbl2][8];
    $tblmysqlselect2 = $prdbdata[$tbl2][9];
    $md1column2 = $prdbdata[$tbl2][10];
    if ($md1column2 === "") {
        $md1column2 = 1;
    }
    //reset to default
    $md2column2 = $prdbdata[$tbl2][11];
    if ($md2column2 === "") {
        $md2column2 = 0;
    }
    //reset to default
    $dbtype2 = $prdbdata[$tbl2][12];
    $writeright2 = $prdbdata[$tbl2][13];
    $needrights2 = $prdbdata[$tbl2][14];
    $virtualid2 = $prdbdata[$tbl2][15];
    $reserved162 = $prdbdata[$tbl2][16];
    $reserved172 = $prdbdata[$tbl2][17];
    //найден код требуемой базы
    // procs from standart csv<-->sql converter
    $separator = stripslashes($separator);
    $separator = stripcslashes($separator);
    if (!$separator) {
        $separator = "¦";
    }
    // separator s changed - work
    if ($usecomma2x) {
        $separator = ";";
        echo "Forced using ; as separator , plevel writing declined.<br>";
    }
    $version = "dbs ed";
    $path_to_temp = "";
    function char2array($string)
    {
        $len = strlen($string);
        for ($j = 0; $j < $len; $j++) {
            $char[$j] = substr($string, $j, 1);
        }
        return $char;
    }
    function sqlify_line($line, $splitseparator, $separator, $ncols)
    {
        $line = chop($line);
        $line_chunks = split($splitseparator, $line);
        if ($ncols != sizeof($line_chunks)) {
            print "<br># ошибка, несоответствие колонок и данных<br>";
        }
        for ($i = 0; $i < count($line_chunks); $i++) {
            $s = trim($line_chunks[$i]);
            if ($s[0] == $s[strlen($s) - 1] && ($s[0] == "'" || $s[0] == '"')) {
                $s = substr($s, 1, strlen($s) - 2);
            }
            $line_chunks[$i] = addslashes($s);
            //rejected  <font color="#000BA">  </red>
        }
        for ($i = 0; $i < count($line_chunks); $i++) {
            if ($i == count($line_chunks) - 1) {
                $comma = "";
            } else {
                $comma = ", ";
            }
            // $separator.
            $final_line .= "'{$line_chunks[$i]}'{$comma}";
        }
        return $final_line;
    }
    function field_fix($line)
    {
        $line = eregi_replace("[[:space:]]+", "", $line);
        $letterarray = char2array($line);
        for ($i = 0; $i < count($letterarray); $i++) {
            if (eregi("^[_a-z0-9-]+", $letterarray[$i])) {
                $fieldname .= $letterarray[$i];
            }
        }
        return $fieldname;
    }
    //end procs standart csv<-->sql converter
    if (isset($colfind2)) {
        $colfind2 = $md2column2;
    }
    submitkey("write", "A_CONV_DEST_CHG");
    ?>
</form>  <?php 
    echo cmsg("A_CONV_TOEXEC") . ":<br>" . cmsg("A_CONV_SRC") . $namebas . " (" . $tbl1 . ") -->" . cmsg("A_CONV_DEST") . " " . $namebas2 . " (" . $tbl2 . ")<br>";
    if ($dbtype == $dbtype2) {
        echo "<red>" . cmsg("A_ONESTRUCT") . "</red><br>";
    }
    if ($dbtype == "fdb" and $dbtype2 == "mysql") {
        echo " CSV->->SQL.<br>";
    }
    if ($dbtype == "mysql" and $dbtype2 == "fdb") {
        echo " SQL->->CSV.<br>";
    }
    if ($write === cmsg("A_CONV_START")) {
        if ($prauth[$ADM][10] < 2) {
            lprint("ACCDEN");
            exit;
        }
        set_time_limit(0);
        //процесс
        //  2235 to 22355   serega   3377 removed to 2235
        if ($dbtype == $dbtype2) {
            lprint("A_ONESTRUCT");
            exit;
        }
        //start decoding SCP to CSV
        if ($dbtype == 2 and $dbtype2 == "fdb") {
            $filbas = "_data/" . $prdbdata[$tbl1][0];
            echo "<font color=red>Работа над данным режимом не закончена.</red><br>" . $filbas;
            iniparse($filbas, 21);
        }
        //end of decoding SCP to CSV
        //  CSV to SQL
        if ($dbtype == "fdb" and $dbtype2 == "mysql") {
            $filbas = $prdbdata[$tbl1][0];
            // где то ВСЕГДА теряет $filbas пришлось так сделать
            $csv_file_name = $filbas;
            $csv_file = $filbas;
            //reconfig
            if (!$filbas) {
                echo "Filebas = {$filbas} !!!!!!";
                exit;
            }
            $db_host = $hostmysqlselect2;
            $user_nm = $sd[14];
            //хм а почему Access denied for user '1'@'localhost' (using password: YES) in /media/D/Work/KERNEL/dj/site/dbscore.lib on line 1172
            $password = $sd[17];
            $DATABASE = $tblmysqlselect2;
            echo "DEBUG DATABASE dest={$DATABASE}";
            $table = $tablemysqlselect2;
            echo "DEBUG Table dest={$table}";
            //        echo "filbas=$filbas ; db_host=$db_host ; user_nm=$user_nm ; passwor=$password db=$DATABASE tab=$table";данные идут верные
            //echo "!DATABASE ".$DATABASE."!table".$table."!pas".$password;
            $separator = '¦';
            //changed
            if ($usecomma2x) {
                $separator = ";";
                echo "Forced using ; as separator , plevel writing declined.<br>";
            }
            $splitseparator = $separator;
            $table_nm = split("\\.", $csv_file_name);
            $table_name = strtolower($table_nm[0]);
            // ne ustr
            $table_name = $tablemysqlselect2;
            $out_header = "# source: {$tblmysqlselect} -- {$tablemysqlselect}<br># dest : {$tblmysqlselect2} -- {$tablemysqlselect2} ";
            if ($send) {
                header("Content-disposition: filename={$table}.csv");
                header("Content-type: application/octetstream");
                header("Pragma: no-cache");
                header("Expires: 0");
                $client = getenv("HTTP_USER_AGENT");
                if (ereg('[^(]*\\((.*)\\)[^)]*', $client, $regs)) {
                    $os = $regs[1];
                    if (eregi("Win", $os)) {
                        $crlf = "\r\n";
                    }
                }
            }
            if ($csv_file != "none") {
                $location = $path_to_temp . mktime() . ".csv";
                copy("_data/" . $csv_file, $location) or die("Failed to copy");
                //unlink($csv_file);
                $file_content = file($location);
                $fields = explode($splitseparator, $file_content[0]);
                for ($i = 0; $i < count($fields); $i++) {
                    $fields[$i] = field_fix($fields[$i]);
                }
                $table_create = "";
                //added drop db
                //  $table_create .= "DROP DATABASE IF EXISTS `".$DATABASE."` ;\n";
                //$connect = dbs_connect ($prdbdata[$tbl2][6], $prdbdata[$tbl2][13] , $sd[17],$dbtype2); // fail? $sd[14]
                if (!$dbtype2) {
                    $dbtype2 = "mysql";
                }
                echo "Connected: " . $prdbdata[$tbl2][6] . " by user {$sd['14']} <br>";
                $connect = dbs_connect($prdbdata[$tbl2][6], $sd[14], $sd[17], $dbtype2);
                // fail? $sd[14]
                $query = "";
                if ($addmode) {
                    $query = "CREATE DATABASE `" . $DATABASE . "` ;\n";
                    dbs_query($query, $connect, $dbtype2);
                    $query = "DROP TABLE IF EXISTS `{$table_name}` ;\n";
                    dbs_query($query, $connect, $dbtype2);
                    $query = "";
                }
                $table_create .= "CREATE TABLE `{$table_name}` (\n";
                if ($unique) {
                    $table_create .= "   id smallint(6) DEFAULT '0' not null auto_increment,\n";
                }
                $numfields = count($fields);
                for ($i = 0; $i < $numfields; $i++) {
                    if ($i == $numfields - 1) {
                        $comma = "";
                    } else {
                        $comma = ",";
                    }
                    //$comma = $separator;
                    $table_create .= "   `{$fields[$i]}` CHAR(225) not null{$comma}\n";
                    // text?
                    $field_names .= "{$fields[$i]}{$comma} ";
                }
                if ($unique) {
                    $table_create .= "   PRIMARY KEY (id),\n   UNIQUE ID (id)\n";
                }
                $table_create .= ")ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED ;\n\n";
                //test added engine to ; without ;
                if (!$addmode) {
                    $table_create = "";
                }
                // addmode
                if (!$send) {
                    echo "</center><p align=\"left\"><pre>";
                }
                if ($views) {
                    echo $out_header;
                }
                //      if ($views) {  echo $table_create; };
                $query = $table_create;
                if ($unique) {
                    $unique_field = "id, ";
                }
                for ($i = 1; $i < count($file_content); $i++) {
                    $partquery .= "\n INSERT INTO {$table_name} ({$unique_field}" . trim($field_names) . ") VALUES (";
                    if ($views) {
                        echo "";
                    }
                    if ($unique_field) {
                        $uniqq = "'{$i}', ";
                    }
                    $partquery .= $uniqq . sqlify_line($file_content[$i], $splitseparator, $separator, $numfields) . "); \n";
                    if ($views) {
                        echo "";
                    }
                }
                $query .= $partquery;
                // окончательный запрос тут!
                //if ($views) { echo $partquery;}
                // 	simple execute
                //mysql_select_db ($prdbdata[$tbl2][9], $connect);
                dbs_selectdb($prdbdata[$tbl2][9], $connect, $dbtype2);
                //	executesql ($query,$connect,"",1);  bad use only this command
                $find;
                $ax = array();
                // почему то вариант с разделением на строки куда лучше работает
                $ax = explode(";", $query);
                for ($ab = 0; $ab < count($ax) - 1; $ab++) {
                    if ($views) {
                        echo "<ii><bb>to execute ::: <br>" . $ax[$ab] . ";<br>--- query {$ab} ---</ii></bb></bb><br>";
                    }
                    $find = $find + executesql($ax[$ab] . ";", $connect, "", 2);
                    if ($views) {
                        echo "<br>--------<br>";
                    }
                }
                //	echo "6=".$prdbdata[$tbl2][6]." 13=".$prdbdata[$tbl2][13]." 17=".$sd[17]." selected db=".$prdbdata[$tbl2][9]."<br>";
                //	$result = dbs_query ($query,$connect,$dbtype);($query, $connect);
                //	if ($result<1) { echo " Процедура импорта не удалась.  <br>$result<br>"; };
                //	$myrow =dbs_fetch_row ($a,$dbtype);
                if (!$send) {
                    echo "</pre><p>";
                }
            } else {
                echo "Необходим CSV для конверсии";
            }
            echo "Процедура закончена, выполнено {$find} операций.";
            @unlink($location);
            exit;
        }
        // END CSV TO SQL
        // SQL TO CSV
        if ($dbtype == "mysql" and $dbtype2 == "fdb") {
            //	echo "Преобразование SQL в CSV.";
            $separator = "¦";
            if ($usecomma2x) {
                $separator = ";";
                echo "Forced using ; as separator , plevel writing declined.<br>";
            }
            $csv_file_name = $namebas2;
            //reconfig
            $db_host = $hostmysqlselect;
            $user_nm = $sd[14];
            $password = $sd[17];
            $DATABASE = $tblmysqlselect;
            $table = $tablemysqlselect;
            //процедура очень давно не проверялась,  ее надо вынести в w.php  и как следует проштудировать
            $connect = dbs_connect($db_host, $user_nm, $password, $dbtype) or die("Unable to connect to SQL server");
            @dbs_selectdb($DATABASE, $connect, $dbtype) or die("Unable to select DATABASE");
            $sqlcont = "select * from {$table}";
            $result = dbs_query($sqlcont, $connect, $dbtype);
            echo dbserr();
            function make_csv_happy($string, $separator)
            {
                $string = trim($string);
                if (eregi("\$separator", $string)) {
                    $string = ereg_replace("\"", "\"\"", $string);
                    $string = "\"" . $string . "\"";
                }
                $string = ereg_replace(10, "", $string);
                $string = ereg_replace("\r", "", $string);
                return $string;
            }
            if (mysql_fieldname($result, 0) == "id") {
                $first_field = "iD";
            }
            while ($col < mysql_numfields($result)) {
                $fname = mysql_fieldname($result, $col);
                if ($col < mysql_numfields($result) - 1) {
                    $comma = $separator;
                } else {
                    $comma = "";
                }
                if ($col == 0 && $first_field) {
                    $names .= $first_field . $comma;
                    $plevels .= "0" . $comma;
                } else {
                    $names .= make_csv_happy(strtoupper($fname), $separator) . $comma;
                    $plevels .= "0" . $comma;
                }
                $col++;
            }
            $final = $names . "\n";
            if ($separator == "¦") {
                echo "Generating dbs 4.x compactible header...<br>";
                $final .= $plevels . "\n";
                //plevel generic  сделать выбор разделителя для сохранения - dbs 4.x 2.x (;)
            }
            while ($row < mysql_numrows($result)) {
                $col = 0;
                $line = "";
                while ($col < mysql_numfields($result)) {
                    $fname = mysql_fieldname($result, $col);
                    if ($col < mysql_numfields($result) - 1) {
                        $comma = $separator;
                    } else {
                        $comma = "";
                    }
                    $line .= make_csv_happy(mysql_result($result, $row, $fname), $separator) . $comma;
                    $col++;
                }
                $final .= $line . "\n";
                $row++;
            }
            if ($send) {
                header("Content-disposition: filename={$table}.csv");
                header("Content-type: application/octetstream");
                header("Pragma: no-cache");
                header("Expires: 0");
                $client = getenv("HTTP_USER_AGENT");
                if (ereg('[^(]*\\((.*)\\)[^)]*', $client, $regs)) {
                    $os = $regs[1];
                    if (eregi("Win", $os)) {
                        $crlf = "\r\n";
                    }
                }
            } else {
                echo "</center><p align=\"left\"><pre>";
            }
            // 		end SQL TO CSV
            if ($views) {
                echo $final;
            }
            if ($addmode) {
                @($f = fopen("_data/" . $filbas2, "w")) or die("Не могу подсоединится к базе.");
                @fwrite($f, $final) or die("Невозможно произвести запись");
                @fclose($f);
            } else {
                @($f = fopen("_data/" . $filbas2, "a+")) or die("Не могу подсоединится к базе.");
                @fwrite($f, $final) or die("Невозможно произвести запись");
                @fclose($f);
            }
            if (!$send) {
                echo "</pre></p>";
            }
        }
        echo "Задача поставлена, подождите пожалуйста до окончания процесса и не переключайте страницу.\t";
        exit;
    }
    ?>
<form action=w.php method=post>
<?php 
    hidekey("db_host", 0);
    hidekey("user_nm", 0);
    hidekey("password", 0);
    hidekey("DATABASE", 0);
    hidekey("table", 0);
    hidekey("tbl1", $tbl1);
    hidekey("tbl2", $tbl2);
    hidekey("ietbl", 1);
    ?>

<?php 
    checkbox($views, "views");
    echo cmsg("WF_LOG") . "<br>";
    checkbox($unique, "unique");
    echo cmsg("A_CONV_SETUID") . "<br>";
    checkbox($usecomma2x, "usecomma2x");
    echo cmsg("USECOMMA2X") . "<br>";
    checkbox($addmode, "addmode");
    echo cmsg("A_CONV_SETREWR") . "<br>";
    hidekey("separator", ";");
    submitkey("write", "A_CONV_START");
    echo "</form>";
}
示例#2
0
     echo "Autodetect encoding ON.<br>";
 }
 for ($b = $prdbdatacnt - 1; $b < $totaltables + $prdbdatacnt - 2; $b++) {
     $tbl = $b;
     $origID = $b - $prdbdatacnt + 1;
     $namebas = $tableselected[$origID];
     if ($namebas == false) {
         break;
     }
     if ($namebas == array()) {
         break;
     }
     $filbas = $namebas;
     //if (1==1.45)
     if ($dbtype == "mysql") {
         // readdescripters partial copy
         $servermysql = $serv2;
         if (!$serv2) {
             $servermysql = $mainhostmysql;
         }
         // юзаем main
         $connect = dbs_connect($servermysql, $sd[14], $sd[17], $dbtype);
         if ($debugmode) {
             echo "{$connect}=dbs_connect ({$servermysql},{$sd['14']},{$sd['17']},{$dbtype});";
         }
         //if (($ADM==0)AND(!$connect)) $silent=0;// на php 4 без авторизации окно не видно :(
         //if (!$silent)if (!$connect) msgexiterror ("SQLdown",$prdbdata[$tbl][6],"admin.php");
         dbs_selectdb($dbselected, $connect, $dbtype);
         if ($debugmode) {
             echo "mysql_select_db ({$dbselected}, {$connect});;";
         }
示例#3
0
function newscreatesql()
{
    global $pr, $sd, $debug;
    if (!$pr[82]) {
        return false;
    }
    // CFG OPT FUTURE disables script using checklogssql
    //if (!$pr[43]) {
    if ($debug) {
        errorlog("DEBUG checklogsql:Connection failure. Default host not set or SQL off. trying 127.0.0.1.");
        $pr[43] = "127.0.0.1";
    }
    $dbtype = "mysql";
    @($connect = dbs_connect($pr[43], $sd[14], $sd[17], $dbtype));
    dbs_selectdb("dbscriptbk", $connect, $dbtype);
    if ($connect == false) {
        errorlog("DEBUG checklogsql:Connection failure. Default host lost. {$pr['43']}");
        return false;
    }
    $mysqlanswer = 1;
    $prefix = $sd[30];
    $tablename = "_dbs_" . $prefix . "_news43";
    $query = "SHOW CREATE TABLE `dbscriptbk`.`_dbs_" . $prefix . "_news43`;";
    $silent = 0;
    $e = dbs_query($query, $connect, $dbtype);
    if ($e == true) {
        $mysqlanswer = true;
    }
    if ($e == false) {
        echo "initalizing tables..._dbs_" . $prefix . "_news43 ...";
        $query = "CREATE DATABASE IF NOT EXISTS `dbscriptbk`;";
        $a = dbs_query($query, $connect, $dbtype);
        if ($a == false) {
            sqlerr();
        }
        $query = "CREATE TABLE {$tablename} ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `user` text NOT NULL DEFAULT '0', `plevelview` int(2) unsigned NOT NULL DEFAULT '0', `subject` text NOT NULL, `gutentag` text NOT NULL, `video` text NOT NULL, `message` text NOT NULL, `data` text NOT NULL,PRIMARY KEY (`id`) )\tENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;";
        $a = dbs_query($query, $connect, $dbtype);
        if ($a == false) {
            sqlerr();
            $mysqlanswer = false;
        } else {
            $mysqlanswer = true;
        }
        // внимание записи ВСЕХ существующих копий дбскрипт будут попадать в эти базы- модификации названия таблиц и т.п. пока отсутствуют CFG OPT FUTURE
        ## end of creating tables
    }
    return $mysqlanswer;
}
示例#4
0
文件: r.php 项目: serj-43/db-script
function search()
{
    global $go, $olddvID, $selectedfield, $field, $fields;
    global $commode, $multisearch, $vID, $adm;
    global $mode, $tbl, $desc, $pr, $review, $mv;
    global $site, $sd, $lock, $db, $totalbas, $k;
    global $filbas, $namebas, $scrdir, $formatscr, $category;
    global $tablemysqlselect, $hostmysqlselect, $categorymode, $scrcolumn;
    global $tblmysqlselect, $md1column, $md2column, $dbtype, $writeright;
    global $DBC, $vIDold, $mvcnt, $b, $dbc, $prdbdata, $scrnum, $mycol, $mycols;
    global $myrow;
    //bugs with screen without it
    global $res16;
    //maybe bug with res16 передаче
    global $vID2;
    global $limitenable, $selectenable, $field, $printlimit, $addsql, $kol, $dbtype, $xfgetlimit;
    //  глобализация как обычно млин
    global $oldmode;
    if ($oldmode > 7 and $oldmode < 8) {
        // затычка для случая с сбросом искомой колонки
        $x = explode(".", $oldmode);
        $kol = $x[1];
        $mode = 7;
        if ($debug) {
            echo "Reselect column for mode 7 : {$kol}";
        }
    }
    //echo "dbtype=$dbtype;"; тут он есть , где потерялся тогда??
    ###########################################################
    //MYSQLMODESEARCHSTART					NON-GLOBAL MODES //
    ###########################################################
    //процедура поиска по имени - mode 1 - SQL
    if ($mode == 1 and $prdbdata[$tbl][12] != "fdb") {
        @($connect = dbs_connect($prdbdata[$tbl][6], $sd[14], $sd[17], $dbtype));
        @dbs_selectdb($prdbdata[$tbl][9], $connect, $dbtype);
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        global $query, $connect;
        global $mzdata, $mycols, $myrow, $findrecords, $scrcolumn;
        $query = "SELECT * FROM `" . $prdbdata[$tbl][5] . "` WHERE " . $mycol[$md1column] . " LIKE '%" . $vID . "%'";
        if ($prdbdata[$tbl][15] > 0 and $vID2 !== "") {
            $query = $query . " AND " . $mycol[$prdbdata[$tbl][15]] . "= '" . $vID2 . "'";
        }
        $query = $query . $addsql;
        // сортировка, лимит
        selectedprintsql($data);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    //процедура поиска по коду  - mode 2 - SQL
    if ($mode == 2 and $prdbdata[$tbl][12] != "fdb") {
        $connect = dbs_connect($prdbdata[$tbl][6], $sd[14], $sd[17], $dbtype);
        dbs_selectdb($prdbdata[$tbl][9], $connect, $dbtype);
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        global $query, $connect;
        global $mzdata, $mycols, $myrow, $findrecords, $scrcolumn;
        settype($vID, "integer");
        if ($vID == 0) {
            msgexiterror("needcode", $mode, "disable");
        }
        $query = "SELECT * FROM `" . $prdbdata[$tbl][5] . "` WHERE " . $mycol[$md2column] . "= " . $vID;
        if ($prdbdata[$tbl][15] > 0 and $vID2 !== "") {
            $query = $query . " AND " . $mycol[$prdbdata[$tbl][15]] . "= '" . $vID2 . "'";
        }
        $query = $query . $addsql;
        // сортировка, лимит
        selectedprintsql($data);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    //mode 3 процедура SQL поиска по категории
    if ($mode == 3 and $prdbdata[$tbl][12] != "fdb") {
        $connect = dbs_connect($prdbdata[$tbl][6], $sd[14], $sd[17], $dbtype);
        dbs_selectdb($prdbdata[$tbl][9], $connect, $dbtype);
        if ($categorymode == false) {
            msgexiterror("nocategory", $mode, "disable");
        }
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        $myrow = $data[0];
        global $query, $connect, $mzdata, $mycols, $myrow, $findrecords, $scrcolumn;
        $query = "SELECT * FROM `" . $prdbdata[$tbl][5] . "` WHERE " . $mycol[$category] . " LIKE '%" . $vID . "%'";
        if ($prdbdata[$tbl][15] > 0 and $vID2 !== "") {
            $query = $query . " AND " . $mycol[$prdbdata[$tbl][15]] . "= '" . $vID2 . "'";
        }
        $query = $query . $addsql;
        // сортировка, лимит
        selectedprintsql($data);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    if ($mode == 9) {
        $connect = dbs_connect($prdbdata[$tbl][6], $sd[14], $sd[17], $dbtype);
        dbs_selectdb($prdbdata[$tbl][9], $connect, $dbtype);
        global $fullfield;
        if ($categorymode == false) {
            msgexiterror("nocategory", $mode, "disable");
        }
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        $myrow = $data[0];
        // bordf\der
        $namecategorycol = $myrow[$category];
        $query = "SELECT DISTINCT {$namecategorycol} FROM `" . $prdbdata[$tbl][5] . "` WHERE " . $mycol[$category] . " LIKE '%" . $vID . "%'";
        if ($vID == "!101") {
            $query = "SELECT DISTINCT {$namecategorycol} FROM `" . $prdbdata[$tbl][5] . "`";
        }
        if ($fullfield) {
            $query = str_replace("LIKE", "=", $query);
            $query = str_replace("%", "", $query);
            //echo $query;
        }
        if (!$pr[8]) {
            echo "DEBUG - {$query}";
        }
        $result = dbs_query($query, $dbtype);
        while ($myrow = dbs_fetch_row($result, $dbtype)) {
            echo "<a href='r.php?tbl={$tbl}&mode=3&vID=" . $myrow[0] . "'> " . $myrow[0] . "</a><br>";
        }
        exit;
    }
    //mode 8 процедура SQL поиска по любой колонке
    if ($mode == 8 and $prdbdata[$tbl][12] != "fdb") {
        global $presettedmode;
        $mode = 6;
        $presettedmode = 3;
    }
    if ($mode == 7 and $prdbdata[$tbl][12] != "fdb") {
        //ubrat vse vybory polej ne svyazannye s tekushim mode==7( po menu)
        global $presettedmode, $res16, $mznumb, $codekey, $fullfield;
        echo "kol={$kol}";
        $field = $kol;
        global $prauth, $ADM;
        // добавлено для переключения продвинутого поиска
        //	echo "Field activated first $field<br>"; //TO DELETE AFTE
        $mode = 6;
        $mode7 = 1;
        //$presettedmode=1.1; bylo 1.1
        $eid = encodevID($vID);
        $eolddid = encodevID($olddvID);
        $selectedfield = "!1" . $field;
        // если field выбран то выполняется
        ?>
 	<form action="r.php" method=post>
<?php 
        if ($multisearch == 1) {
            // urlencode ($oldvID);serialize ($olddvID); $vID="!S".$vID;
            hidekey("vID", $eolddid);
        } else {
            hidekey("vID", $eid);
        }
        hidekey("mode", 7);
        hidekey("adm", $adm);
        hidekey("commode", $commode);
        hidekey("tbl", $tbl);
        hidekey("multisearch", $multisearch);
        hidekey("fullfield", $fullfield);
        hidekey("selectedfield", $selectedfield);
        hidekey("review", $review);
        hidekey("vID2", $vID2);
        hidekey("kol", $kol);
        //	submitkey ("go","R_SEL_ROW");// проверить чтобудет если искать по значению сортировки удаляем уже не нужно :))
        echo " </form> ";
    }
    //mode 6 процедура SQL поиска по выбранной колонке
    if ($mode == 6 and $prdbdata[$tbl][12] != "fdb") {
        $connect = dbs_connect($prdbdata[$tbl][6], $sd[14], $sd[17], $dbtype);
        global $categorymode, $mode, $fullfield;
        global $mode6, $m6field, $m6count;
        global $mycols, $mycol, $del, $res16, $presettedmode, $selectedfield, $fields;
        global $partquery, $vID, $mznumb;
        $res16 = $prdbdata[$tbl][16];
        // Лимит колонок
        if ($mode7 == 1) {
            $res16 = $selectedfield;
        }
        $a = prefixdecode($res16);
        //echo "PREFIX $res16";
        dbs_selectdb($prdbdata[$tbl][9], $connect, $dbtype);
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        //$mycol[$md1column]".."
        $mode6 = array();
        global $query, $connect;
        global $mzdata, $mycols, $myrow;
        global $findrecords, $scrcolumn;
        decodecols();
        $query = "SELECT * FROM `" . $prdbdata[$tbl][5] . "` WHERE " . $partquery;
        if ($prdbdata[$tbl][15] > 0 and $vID2 !== "") {
            $query = $query . " AND " . $mycol[$prdbdata[$tbl][15]] . "= '" . $vID2 . "'";
        }
        //if (!$pr[8]) { echo "AFTER DECODE categorymode=$categorymode,mode=$mode,m6count=$m6count,	 mode6=$mode6,m6field=$m6field,mycols=$mycols,mycol=$mycol,del=$del,partquery=$partquery,vID=$vID<br>";}
        $query = $query . $addsql;
        // сортировка, лимит
        selectedprintsql($data);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    //MYSQLMODESEARCHEND
    ###########################################################
    //CSVMODESEARCH						NON GLOBAL MODE		 //
    ###########################################################
    //	if (($prdbdata[$tbl][15]>0)AND ($vID2!=="")) { $query = $query." AND ".$mycol[$prdbdata[$tbl][15]]."= '".$vID2."'";}; // не внедрено т.к. есть ошибка с вызовом из screen которая заставляет правильно от 1 рез.
    // процедура поиска по имени  - mode 1 - CSV
    if ($mode == 1 and $prdbdata[$tbl][12] == "fdb") {
        $findrecords = 0;
        echo cmsg("RF_RESSRCH") . $namebas . " - " . $vID . ":\n\n";
        $vIDold = $vID;
        $vID = strtolower($vID);
        // @$f=fopen ("_data/".$filbas,"r") or die ("Файл базы не найден");
        // echo ""; $z=xfgetcsv ($f,$xfgetlimit,"¦");
        // $mycol=$z;$myrow=array ();$selected=array ();//added
        //$md1column=1;$md2column=0;
        //echo "$cfgmod=cfg;$filbas=fil;$namebas=na,;$md1column=md1;$md2column=md2;<br>";
        $data = readdescripters();
        $f = $data[4];
        //echo "$cfgmod=cfg;$filbas=fil;$namebas=na,;$md1column=md1;$md2column=md2;<br>";rd вообще не возвр данные.
        rfsysdatareq();
        // возвращаем потерянные хер знает где переменные
        for ($a = 0; $dbc = xfgetcsv($f, $xfgetlimit, "¦"); $a++) {
            $k = count($dbc);
            //echo "md1=$md1column";// dbc-стр табл  к- число кол з-заголовок
            $findid = strpos(strtolower($dbc[$md1column]), strtolower($vID));
            if ($findid !== false && $dbc[$md1column] !== "") {
                //  проверка условия, не может быть удалена
                $selected[] = $dbc;
                //added
            }
        }
        // echo "selectedprintcsv ($mycol,$selected); ".$mycol[0].$selected[0]."--".$selected[0][0]."<br>"; вывод
        selectedprintcsv($data, $mycol, $selected);
        //fclose ($f);
        if ($multisearch == 0) {
            exit(1);
        }
        // $k= count($dbc) - вычисление кол-ва столбцов
    }
    //поиск по коду - mode 2 - CSV
    if ($mode == 2 and $prdbdata[$tbl][12] == "fdb") {
        $data = readdescripters();
        $f = $data[4];
        $cfgmod = $data[5];
        rfsysdatareq();
        // возвращаем потерянные хер знает где переменные
        if (!$cfgmod) {
            // сделано только для конфигурации, в остальных случаях эти базы мало отличаются
            settype($vID, "integer");
            if ($vID == 0) {
                msgexiterror("needcode", $mode, "disable");
            }
        }
        $findrecords = 0;
        echo cmsg("RF_RESSRCH") . $namebas . " - " . $vID . ":\n\n";
        for ($a = 0; $dbc = xfgetcsv($f, $xfgetlimit, "¦"); $a++) {
            $k = count($dbc);
            // dbc-стр табл  к- число кол з-заголовок
            if ($dbc[$md2column] == $vID) {
                $selected[] = $dbc;
            }
            // c проверкой
        }
        selectedprintcsv($data, $mycol, $selected);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    //mode 8 процедура CSV поиска по любой колонке
    if ($mode == 8 and $prdbdata[$tbl][12] == "fdb") {
        global $presettedmode;
        $mode = 6;
        $presettedmode = 3;
    }
    if ($mode == 7 and $prdbdata[$tbl][12] == "fdb") {
        //ubrat vse vybory polej ne svyazannye s tekushim mode==7( po menu)
        if ($debug) {
            echo "m7 Текущий vID {$vID} res16 {$res16} STR595<br>";
        }
        global $prauth, $ADM, $codekey;
        // добавлено для переключения продвинутого поиска
        global $presettedmode, $mzdata, $mzcnt, $res16, $mznumb, $mycol, $fullfield;
        if ($debug) {
            echo "kol={$kol}";
        }
        $field = $kol;
        ///	echo "encodevID  $eid;  encodevID(old) $eolddid ";
        $mode = 6;
        $mode7 = 1;
        //$presettedmode=-1; bylo 1.1
        //..	if (!$cfgmod) @$f=csvopen ("_data/".$filbas,"r","0");
        //..	if ($cfgmod==1) @$f=csvopen ("_conf/".$filbas,"r","0");echo "<br>";
        $eid = encodevID($vID);
        $eolddid = encodevID($olddvID);
        //setup id
        if ($field === false or $go == "Выбрать_колонку") {
            echo "Выберите поле для поиска:<br>";
            // Вставлено для выбора поля
            if ($debug) {
                echo "result res16={$res16} selfield {$selectedfield} STR603 a={$a} m6={$m6field['0']} , {$m6field['1']} , {$m6field['2']} <br>";
            }
            if ($debug) {
                echo " do (574) readdesc mznumb1=" . $mznumb[1] . " mycols" . $mycols . " mzdata1=" . $mzdata[1] . " plevel=" . $plevel[1] . " mycol1=" . $mycol[1] . "<br>";
            }
            $data = readdescripters();
            if ($debug) {
                echo " do (576) readdesc mznumb1=" . $mznumb[1] . " mycols" . $mycols . " mzdata1=" . $mzdata[1] . " plevel=" . $plevel[1] . " mycol1=" . $mycol[1] . "<br>";
            }
            $mznumb = $data[2];
            $mycols = $data[6];
            $mzdata = $data[0];
            $plevels = $data[1];
            $mycol = $mzdata;
            $a = prefixdecode($res16);
            decodecols($res16);
            if ($debug) {
                echo "result res16={$res16} selfield {$selectedfield} STR607 a={$a} m6={$m6field['0']} , {$m6field['1']} , {$m6field['2']} <br>";
            }
            // echo "Всего колонок $mycols - ищем значения из списка $mznumb[0];$mznumb[1];$mznumb[2];$mznumb[3]<br>";
            ?>
	<form action="r.php" method=post>
<?php 
            if ($multisearch == 1) {
                hidekey("vID", $eolddid);
            } else {
                hidekey("vID", $eid);
            }
            hidekey("mode", 7);
            hidekey("adm", $adm);
            hidekey("commode", $commode);
            hidekey("tbl", $tbl);
            hidekey("multisearch", $multisearch);
            hidekey("fullfield", $fullfield);
            //$fullfield
            hidekey("selectedfield", $selectedfield);
            hidekey("kol", $kol);
            echo " do (593) readdesc mznumb1=" . $mznumb[1] . " mycols" . $mycols . " mzdata1=" . $mzdata[1] . " plevel=" . $plevel[1] . " mycol1=" . $mycol[1] . "<br>";
            $data = readdescripters();
            //print_r ($data);
            $mznumb = $data[2];
            $mycols = $data[6];
            $mzdata = $data[0];
            $plevels = $data[1];
            //$mycol=$mzdata;
            echo "<br>do  596 readdesc mznumb1=" . $mznumb[1] . " mycols" . $mycols . " mzdata1=" . $mzdata[1] . " plevel=" . $plevel[1] . " mycol1=" . $mycol[1] . "<br>";
            echo "result res16={$res16} STR621<br>";
            $field = printfield($data, "nfield");
            ?>
	<input type = "image" name = "go" src = "_ico/find.png">
	</form><?php 
            $selectedfield = "!1" . $field;
            exit;
        } else {
            $selectedfield = "!1" . $field;
            ?>
 	<form action="r.php" method=post>
<?php 
            if ($multisearch == 1) {
                hidekey("vID", $eolddid);
            } else {
                hidekey("vID", $eid);
            }
            hidekey("mode", 7);
            hidekey("adm", $adm);
            hidekey("commode", $commode);
            hidekey("tbl", $tbl);
            hidekey("fullfield", $fullfield);
            //$fullfield
            hidekey("multisearch", $multisearch);
            hidekey("selectedfield", $selectedfield);
            hidekey("kol", $kol);
            //submitkey ("go","R_SEL_ROW");
            echo "</form> ";
        }
    }
    //mode 6 процедура CSV поиска по новой колонке  НЕ СДЕЛАНО
    // процедура поиска по имени  - mode 1 - CSV
    if ($mode == 6 and $prdbdata[$tbl][12] == "fdb") {
        if ($debug) {
            echo "m6 Текущий vID {$vID}<br>";
        }
        //echo "result res16=$res16   STR656";
        global $categorymode, $mode;
        // добавлено для совместимости с  decodecols ()
        global $mode6, $m6field, $m6count, $mycols, $mycol, $del;
        global $partquery, $vID, $mzcnt, $mznumb, $presettedmode, $xfgetlimit, $fullfield;
        $mznumb = array();
        // TEST ZONE
        $res16 = $prdbdata[$tbl][16];
        // Лимит колонок
        if ($mode7 == 1) {
            $res16 = $selectedfield;
        }
        if ($debug) {
            echo "{$res16} - ";
        }
        $a = prefixdecode($res16);
        //echo "decoded $a=$res16 $categorymode STR 668";	//декодирование строки
        $data = readdescripters();
        // получение данных заголовка массив mycol кол-во mycols
        global $mzdata;
        $mzcnt = count($mzdata);
        //$mycol[$md1column]".."
        $mycol = $mzdata;
        //echo "result res16=$res16 ?STR671";
        $mode6 = array();
        decodecols();
        //echo "result res16=$res16 STR 672";
        for ($aaa = 0; $aaa < count($mode6); $aaa++) {
            $fndcolumn = $mznumb[$aaa];
            $findrecords = 0;
            //echo "Результаты поиска в ".$namebas." - по колонке ".$mzdata[$fndcolumn]."($fndcolumn) -- ".$vID.":\n\n";
            $vIDold = $vID;
            $vID = strtolower($vID);
            if ($vID == "!0") {
                $vID == "";
                $notnull = 1;
            }
            $f = $data[4];
            $data = readdescripters();
            $f = $data[4];
            //mode 6- список всех используемых в этой сессии колонок  если есть ошибки в мультипоиске можно передавать его после первой итерации
            //echo "1count mode6 ".count ($mode6) ."count=$a of $k -- fndcol=$fndcolumn; vid=$vID ; ".$dbc[$fndcolumn]."<br>";
            //$dbc=xfgetcsv ($f,$xfgetlimit,"¦");
            //echo $dbc;echo " ($f,$xfgetlimit,¦); ";
            for ($a = 0; $dbc = xfgetcsv($f, $xfgetlimit, "¦"); $a++) {
                $k = count($dbc);
                $myrow = $dbc;
                //  echo "count=$a of $k -- fndcol=$fndcolumn; vid=$vID ; ".$dbc[$fndcolumn]."<br>";
                // for ($b=0;$b<$k;$b++) {  Бла бла бла;Фэнтэзи;Комедия;Боевик  ищет фигово переключает на 1,4 films al где то производися сброс значения и оно уже не восстанавливается
                // $mode7=1 если вход был оттуда.копать здесь надо.
                if (!$fullfield) {
                    $findid = strpos(strtolower($dbc[$fndcolumn]), $vID);
                }
                if ($fullfield) {
                    if ($dbc[$fndcolumn] == $vID) {
                        $selected[] = $dbc;
                    }
                }
                if ($fullfield) {
                    if ($dbc[$fndcolumn] == false and false == $vID) {
                        $selected[] = $dbc;
                    }
                }
                //echo "$fullfield ffM<br> $findid  id";
                if ($notnull and $dbc[$fndcolumn] != "") {
                    $findid = 1;
                }
                if ($notnull and $dbc[$fndcolumn] == "0") {
                    $findid = false;
                }
                if ($findid !== false && $dbc[$fndcolumn] !== "") {
                    if (!$fullfield) {
                        $selected[] = $dbc;
                    }
                    //added  $findid=false;
                }
            }
        }
        selectedprintcsv($data, $mycol, $selected);
        //echo "result res16=$res16 STR695 END CYCLE<br>";
        if (!$pr[8]) {
            echo "AFTER DECODE categorymode={$categorymode},mode={$mode},m6count={$m6count},\t mode6={$mode6},m6field={$m6field},mycols={$mycols},mycol={$mycol},del={$del},partquery={$partquery},vID={$vID}<br>";
        }
        //	 fclose ($f);
        if ($multisearch == 0) {
            exit(1);
        }
    }
    // поиск по категории
    // процедура ищет фразу потом ищет все коды до следующей фразы
    // проблема в $prdbdata[$a][category] - это одна и та же колонка :)
    // будет сделана после покупки
    //режим категории один - выполняется преобразование цифр
    //script update csv 2,3,4 cat to 1 else return false
    if ($mode == 3 and $categorymode == false) {
        msgexiterror("nocategory", $mode, "disable");
    }
    if ($prdbdata[$tbl][12] == "fdb") {
        if ($mode == 3 and $categorymode == 1 or $mode == 3 and $categorymode == 4) {
            echo "READFILE:OLD_CORE_MODE.<br>";
            updatedb326($filbas);
            $findrecords = 0;
            // общее количество найденных позиций
            //$category =1; категория содержится в этой переменной - this will reset category  TEST ONLY!
            if ($category === "" || $category === false) {
                msgexiterror("nocategory", $mode, "disable");
            }
            if ($vID !== "!101") {
                echo "По вашему запросу " . $vID . " было найдено:\n\n";
            }
            $vIDorig = $vID;
            $vID = strtolower($vID);
            $found = 0;
            @($f = fopen("_data/" . $filbas, "r")) or die("Не удалось выполнить подключение к базе, попробуйте позже.");
            echo "";
            $z = xfgetcsv($f, $xfgetlimit, "¦");
            // заголовок
            for ($a = 0; $dbc = xfgetcsv($f, $xfgetlimit, "¦"); $a++) {
                if ($limitenable and $findrecords > $printlimit) {
                    echo "Всего значений : {$findrecords}<br><br> ";
                    exit;
                }
                $k = count($dbc) - $tablemysqlselect;
                // удаление колонки, определено в prop
                echo "<tbody><table border=3 width=100% bgcolor=white>";
                echo "<tr>";
                for ($b = 0; $b < $k; $b++) {
                    // multithread options experimental
                    // multithread options
                    $content1 = strtolower($dbc[$category]);
                    $findid1 = strpos($content1, $vID);
                    $content2 = strtolower($dbc[$category + 1]);
                    $findid2 = strpos($content2, $vID);
                    $content1int = $content1;
                    settype($content1int, integer);
                    //	$content2int=$content2; settype ($content2int,integer);  //!!
                    if ($found == 1 and $content1 !== "" and $content1int == 0) {
                        $found = 0;
                    }
                    //	  if  (($found==2)AND($content2!=="")) { $found=0;} //OR($findid2!==false)
                    if ($findid1 !== false or $found == 1) {
                        $scrnum = $dbc[$scrcolumn];
                        $found = 1;
                        //$findrecords++; # возможно ошибка 2-раза
                        $data = wordwrap($dbc[$b], 82, "\n");
                        if ($findid1 !== false and $b == 0) {
                            echo "<bb><cite>{$data}</cite></bb></tr>";
                            continue;
                        }
                        //if (($findid2!==false)AND($b==0)) { echo "<bb><cite>$data</cite></bb></tr>"; continue; }
                        if ($hostmysqlselect == 1 && $b == 0) {
                            echo "</tr>";
                            continue;
                        }
                        if ($data == "") {
                            echo "</tr>";
                            continue;
                        }
                        echo "<td><bb>{$z[$b]}</bb>: " . "{$data}<br></td><td>";
                        //$findrecords++;
                        if ($b == 1) {
                            screen();
                        }
                        echo "</td></tr>";
                        if ($b == $k - 1) {
                            echo "<br>";
                            $findrecords++;
                        }
                    }
                    //idfound
                    if ($vID == "!101" and $content1 !== "" and $content1int == 0) {
                        $findrecords++;
                        echo "<bb><ii>" . strtoupper($content1) . "</ii></bb>";
                        ?>
				<form action="r.php" method=post><?php 
                        hidekey("go", $content1);
                        hidekey("vID", $content1);
                        hidekey("mode", 3);
                        hidekey("adm", $adm);
                        hidekey("commode", $commode);
                        hidekey("tbl", $tbl);
                        echo "</form>";
                        break;
                    }
                    //!101
                    //insertion m3c4 old
                }
                //b
            }
            // процедура сообщения об отсутствии искомого объекта  1 из 3
            // Режим категории 4 очень сильно тормозит систему. подобно основному режиму 4
            //DELETED
            if ($findrecords === 0 and $adm == 1 or $findrecords === 0 and $pr[3] == 1) {
                print "<font color=red id=errfnt><bb>Не найдено</bb><br></font>";
            }
            // restart engine m3с1
            fclose($f);
            if ($multisearch == 0) {
                echo "Всего значений : {$findrecords}<br><br> ";
                exit(1);
            }
        }
    }
    // режим категории 1  (в 4-м ищет :) )не ищет конкретные значение в отличие от режима 2 которых их пытается найти везде.
    if ($prdbdata[$tbl][12] == "fdb") {
        if ($mode == 3 and $categorymode > 1 and $categorymode !== 4) {
            updatedb326($filbas);
            // апдейтер для улучшенного формата написан
            // осталось сделать обработку файла в ноовм формате (_conv326)
            echo "READFILE:OLD_CORE_MODE.<br>";
            // общее количество найденных позиций
            //if ($vID!=="!101") { echo cmsg ("RF_RESSRCH)."".$namebas." - ".$vID.":\n\n";}
            //$category =1; категория содержится в этой переменной - this will reset category  TEST ONLY!
            if ($category === "" || $category === false) {
                msgexiterror("nocategory", $mode, "disable");
            }
            //  !101 - tablemysqlselect - hostmysqlselect - - функции из prop  потом как альт. включить  основной скрипт
            //если колонка 1findid!==false то это заголовок и он может иметь описание. только выделить его.выделяя
            //если колонка 1findid==false то проверяем колонку 2findid!==false  пишем стд модулем
            //если колонка 1==false и 2==false пишем значение 3 если уже находились такие
            //echo $findrecords;//if ($vID!=="!101") { echo "По вашему запросу ".$vID." было найдено:\n\n"; }
            $vIDorig = $vID;
            $vID = strtolower($vID);
            $found = 0;
            @($f = fopen("_data/" . $filbas, "r")) or die("Не удалось выполнить подключение к базе, попробуйте позже.");
            echo "";
            $z = xfgetcsv($f, $xfgetlimit, "¦");
            // заголовок
            for ($a = 0; $dbc = xfgetcsv($f, $xfgetlimit, "¦"); $a++) {
                if ($limitenable and $findrecords > $printlimit) {
                    echo "Всего значений : {$findrecords}<br><br> ";
                    exit;
                }
                $k = count($dbc) - $tablemysqlselect;
                // удаление колонки, определено в prop
                echo "<tbody><table border=3 width=100% bgcolor=white>";
                echo "<tr>";
                for ($b = 0; $b < $k; $b++) {
                    //	echo "_SYS_content -- ".$content." findid -- ".$findid." vID -- ".$vID."\n";
                    $content1 = strtolower($dbc[$category]);
                    $findid1 = strpos($content1, $vID);
                    $content2 = strtolower($dbc[$category + 1]);
                    $findid2 = strpos($content2, $vID);
                    if ($found == 1 and $content1 !== "") {
                        $found = 0;
                    }
                    if ($found == 2 and $content2 !== "") {
                        $found = 0;
                    }
                    if ($findid1 !== false or $found == 1) {
                        $scrnum = $dbc[$scrcolumn];
                        $found = 1;
                        //$findrecords++;
                        $data = wordwrap($dbc[$b], 82, "\n");
                        if ($findid1 !== false and $b == 0) {
                            echo "<bb><cite>{$data}</cite></bb></tr>";
                            continue;
                        }
                        if ($hostmysqlselect == 1 && $b == 0) {
                            echo "</tr>";
                            continue;
                        }
                        if ($data == "") {
                            echo "</tr>";
                            continue;
                        }
                        echo "<td><bb>{$z[$b]}</bb>: " . "{$data}<br></td><td>";
                        if ($b == 1) {
                            screen();
                        }
                        echo "</td></tr>";
                        if ($b == $k - 1) {
                            echo "<br>";
                            $findrecords++;
                        }
                    }
                    if ($vID == "!101" and $content1 !== "") {
                        $findrecords++;
                        echo "<bb><ii>" . strtoupper($content1) . "</ii></bb>";
                        ?>
				<form action="r.php" method=post> <?php 
                        hidekey("vID", $content1);
                        hidekey("mode", 3);
                        hidekey("adm", $adm);
                        hidekey("commode", $commode);
                        hidekey("tbl", $tbl);
                        hidekey("go", $content1);
                        hidekey("kol", $kol);
                        echo "</form>";
                        break;
                    }
                    // режим категории 2 позволяет смотреть колонку 2, режим 3 - не позволяет (только findid1)
                    // любое ненулевое значение первой колонки трактуется как новая категория в отличие от 1
                    if ($categorymode === 3) {
                        if ($findrecords === 0 and $adm == 1 or $findrecords === 0 and $pr[3] == 1) {
                            print "<font color=red id=errfnt><bb>Не найдено</bb><br></font>";
                            print "Среди категорий не удалось найти искомую группу.<br>Поискать среди наименований?";
                            ?>
				<form action="r.php" method=post><?php 
                            hidekey("vID", $vID);
                            hidekey("mode", 1);
                            hidekey("adm", $adm);
                            hidekey("commode", $commode);
                            hidekey("tbl", $tbl);
                            hidekey("go", $content1);
                            echo "<p align=center>";
                            submitkey("go", "YES");
                            echo "</p></form>";
                            echo "<form action=disable method=post> \t<p align=center>";
                            submitkey("go", "NO");
                            echo "</p></form>";
                        }
                    }
                    // restart engine m3с2
                    if ($categorymode == 2) {
                        if ($findid2 !== false or $found == 2) {
                            $scrnum = $dbc[$scrcolumn];
                            $found = 2;
                            $data = wordwrap($dbc[$b], 82, "\n");
                            if ($findid1 !== false and $b == 0) {
                                echo "<bb><cite>{$data}</cite></bb></tr>";
                                continue;
                            }
                            if ($hostmysqlselect == 1 && $b == 0) {
                                echo "</tr>";
                                continue;
                            }
                            if ($data == "") {
                                echo "</tr>";
                                continue;
                            }
                            echo "<td><bb>{$z[$b]}</bb>: " . "{$data}<br></td><td>";
                            if ($b == 1) {
                                screen();
                            }
                            echo "</td></tr>";
                            if ($b == $k - 1) {
                                echo "<br>";
                                $findrecords++;
                            }
                        }
                    }
                }
            }
            if ($findrecords === 0 and $adm == 1 or $findrecords === 0 and $pr[3] == 1) {
                print "<font color=red id=errfnt><bb>Не найдено</bb><br></font>";
            }
            // restart engine m3с3
            fclose($f);
            if ($multisearch == 0) {
                echo "Всего значений : {$findrecords}<br><br> ";
                exit(1);
            }
        }
    }
}