Пример #1
0
function dump_table($var, $title = false, $level = 0)
{
    if ($level == 0) {
        echo '<table border="1" cellspacing="1" cellpadding="1" class="dump">';
        if ($title) {
            echo '<tr>
                     <th align="center" colspan="2">' . $title . '</th>
                   </tr>';
        }
        echo '          <tr>
            <th align="right">VAR NAME</th>
            <th align="left">VALUE</th>
          </tr>';
    } else {
        echo '<tr>
                <td colspan="2">
                    <table width="100%" border="0" cellspacing="3" cellpadding="3" class="dump_b">
                </td>
              </tr>';
    }
    foreach ($var as $i => $value) {
        if (is_array($value) or is_object($value)) {
            dump_table($value, false, $level + 1);
        } else {
            echo '<tr>
                        <td align="right" width="50%" >' . $i . '</th>
                        <td align="left" width="50%" >' . $value . '</th>
                       </tr>';
        }
    }
    echo '</table>';
}
Пример #2
0
function sqlbackup($ip, $sql, $username, $password)
{
    global $meurl;
    if (class_exists('ZipArchive')) {
        maintop("MySQL备份");
        $database = $sql;
        //数据库名
        $options = array('hostname' => $ip, 'charset' => 'utf8', 'filename' => $database . '.sql', 'username' => $username, 'password' => $password);
        mysql_connect($options['hostname'], $options['username'], $options['password']) or die("不能连接数据库!");
        mysql_select_db($database) or die("数据库名称错误!");
        mysql_query("SET NAMES '{$options['charset']}'");
        $tables = list_tables($database);
        $filename = sprintf($options['filename'], $database);
        $fp = fopen($filename, 'w');
        foreach ($tables as $table) {
            dump_table($table, $fp);
        }
        fclose($fp);
        //压缩sql文件
        if (file_exists('mysql.zip')) {
            unlink('mysql.zip');
        }
        $file_name = $options['filename'];
        $zip = new ZipArchive();
        $res = $zip->open('mysql.zip', ZipArchive::CREATE);
        if ($res === TRUE) {
            $zip->addfile($file_name);
            $zip->close();
            //删除服务器上的sql文件
            unlink($file_name);
            echo '<div class="box">数据库导出并压缩完成!' . " <a href=\"" . $meurl . "?op=home&folder=" . $_SESSION['folder'] . "\">返回上次浏览的文件夹</a></div>\n";
        } else {
            printerror('无法压缩文件!');
        }
        exit;
        mainbottom();
    } else {
        printerror('此服务器上的PHP不支持ZipArchive,无法压缩文件!');
    }
}
Пример #3
0
?>
<style>
.order { text-align: right; }
</style>
<button id="download" class="btn btn-default">Download</button>
<?php 
if ($vendor) {
    ?>
  <button id="create" class="btn btn-default">Create Order</button>
<?php 
}
?>
<button id="zero" class="btn btn-default">Zero</button>
<?php 
$q = "SELECT item.id meta,\n            code Code\$item,\n            name Name,\n            SUM(allocated) Stock\$right,\n            minimum_quantity Min\$right,\n            (SELECT -1 * SUM(allocated)\n               FROM txn_line JOIN txn ON (txn = txn.id)\n              WHERE type = 'customer'\n                AND item = item.id AND filled > NOW() - INTERVAL 3 MONTH)\n            AS Last3Months\$right,\n            (SELECT SUM(ordered - allocated)\n               FROM txn_line JOIN txn ON (txn = txn.id)\n              WHERE type = 'vendor'\n                AND item = item.id AND created > NOW() - INTERVAL 3 MONTH)\n            AS Ordered\$hide,\n            minimum_quantity AS Order\$order\n       FROM item\n       LEFT JOIN txn_line ON (item = item.id)\n      WHERE active AND NOT deleted\n        AND code NOT LIKE 'ZZ%' AND code NOT LIKE 'MAG-%'\n        {$extra}\n      GROUP BY item.id\n     HAVING (Stock\$right IS NULL OR NOT Stock\$right OR Stock\$right < Min\$right)\n        AND (Ordered\$hide IS NULL OR NOT Ordered\$hide)\n      ORDER BY code\n      ";
dump_table($db->query($q));
dump_query($q);
?>
<form id="post-csv" style="display: none"
      method="post" action="api/encode-tsv.php">
<textarea id="file" name="file"></textarea>
</form>
<script>
$('.order').editable(function (val, settings) { return val; },
                     { width: '3em', select: true });

$('#download').on('click', function(ev) {
  var tsv= "code\tqty\r\n";
  $.each($(".sortable tr"), function (i, row) {
    if (i > 0 && parseInt($('.order', row).text()) > 0) {
      tsv += $('.item a', row).text() + "\t" + $('.order', row).text() + "\r\n";
Пример #4
0
     $s = "show_exists_db";
     $res = db_show($_POST['host'], $_POST['username'], $_POST['pass']);
 } elseif ($_POST['b_runsql']) {
     //Выполняем SQL запрос
     $s = "SQL: " . $sql;
     $res = run_sql($_POST['sql'], $_POST['dbname'], $_POST['host'], $_POST['username'], $_POST['pass']);
 } elseif ($_POST['b_base']) {
     //Выводим список таблиц
     $s = "show_exists_tables";
     $res = show_tables($_POST['dbname'], $_POST['host'], $_POST['username'], $_POST['pass']);
 } elseif ($_POST['b_table']) {
     //Выводим дамп таблицы
     $s = "Dump of " . $_POST['tablename'];
     $tablename = $_POST['tablename'];
     if ($tablename != "") {
         $res = dump_table($_POST['tablename'], $_POST['dbname'], $_POST['host'], $_POST['username'], $_POST['pass']);
     } else {
         $res = "Select table!";
     }
 } elseif ($_POST['b_safe_fuck']) {
     //Обход безопасного режима
     $s = "Open file " . $sfilename . " with MySQL:";
     $res = safe_mode_fuck($_POST['sfilename'], $_POST['host'], $_POST['username'], $_POST['pass'], $_POST['dbname']);
 } elseif ($_POST['b_dfilename']) {
     //Обход безопасного режима
     $s = "Dump in " . $dfilename . " from " . $_POST['tablename'] . ":";
     $res = run_sql("SELECT * INTO OUTFILE '" . addslashes($_POST['dfilename']) . "' FROM " . $_POST['tablename'], $_POST['dbname'], $_POST['host'], $_POST['username'], $_POST['pass']);
 }
 if ($host == "") {
     $host = "localhost";
 }
Пример #5
0
function dump_db($host, $username, $password, $database, $dump_file)
{
    if (mysql_connect($host, $username, $password)) {
        if (mysql_select_db($database)) {
            $dump = "";
            $show = mysql_query("SHOW TABLES");
            $a = 0;
            while ($row = mysql_fetch_array($show)) {
                $dump .= dump_table($row[0], $a, $a);
                $a++;
            }
            mysql_close();
            if ($dump_file == "" || $dump_file == ".sql") {
                $dump_file = gen_filename('dump_' . date("d_M_Y") . '.sql');
            } else {
                $dump_file = gen_filename($dump_file);
            }
            if ($dump != "") {
                $fp = fopen($dump_file, "x+");
                if (fwrite($fp, $dump)) {
                    echo "<font color=\"green\">Dump done successfull!</font>";
                } else {
                    echo "<font color=\"red\">An error occured! Cannot create dump file!</font>";
                }
                fclose($fp);
            } else {
                echo "<font color=\"red\">An error occured! No dump generated!</font>";
            }
        } else {
            mysql_close();
            echo "<font color=\"red\">An error occurted! Could not select the database called " . htmlspecialchars($database) . "!</font>";
        }
    } else {
        mysql_close();
        echo "<font color=\"red\">An error occurted! Could not login " . htmlspecialchars($username) . " @ " . htmlspecialchars($host) . "!</font>";
    }
}
Пример #6
0
 function dump($db)
 {
     global $mysql;
     static $routines;
     if (!isset($routines)) {
         $routines = array();
         if ($mysql->server_info >= 5) {
             foreach (array("FUNCTION", "PROCEDURE") as $routine) {
                 $result = $mysql->query("SHOW {$routine} STATUS");
                 while ($row = $result->fetch_assoc()) {
                     if (!strlen($_GET["db"]) || $row["Db"] === $_GET["db"]) {
                         $routines[$row["Db"]][] = $mysql->result($mysql->query("SHOW CREATE {$routine} " . idf_escape($row["Db"]) . "." . idf_escape($row["Name"])), 2) . ";;\n\n";
                     }
                 }
                 $result->free();
             }
         }
     }
     $views = array();
     $result = $mysql->query("SHOW TABLE STATUS");
     while ($row = $result->fetch_assoc()) {
         if (isset($row["Engine"])) {
             dump_table($row["Name"]);
         } else {
             $views[] = $row["Name"];
         }
     }
     $result->free();
     foreach ($views as $view) {
         dump_table($view, false);
     }
     if ($routines[$db]) {
         echo "DELIMITER ;;\n\n" . implode("", $routines[$db]) . "DELIMITER ;\n\n";
     }
     echo "\n\n";
 }
	<?php 
    exit;
}
db_connect($db_server, $db_name, $db_user, $db_pass);
if ($db_charset && 'mysql' == $db_driver) {
    db_exe("SET NAMES {$db_charset}");
}
if (isset($_GET['dump_all']) && 1 == $_GET['dump_all']) {
    dump_all($data = false);
}
if (isset($_GET['dump_all']) && 2 == $_GET['dump_all']) {
    dump_all($data = true);
}
if (isset($_GET['dump_table']) && $_GET['dump_table']) {
    dump_table($_GET['dump_table']);
}
if (isset($_GET['export']) && 'csv' == $_GET['export']) {
    export_csv(base64_decode($_GET['query']), $_GET['separator']);
}
if (isset($_POST['sqlfile']) && $_POST['sqlfile']) {
    $files = sql_files_assoc();
    if (!isset($files[$_POST['sqlfile']])) {
        exit('File not found. md5 = ' . $_POST['sqlfile']);
    }
    $sqlfile = $files[$_POST['sqlfile']];
    layout();
    echo '<div>Importing: <b>' . $sqlfile . '</b> (' . size(filesize($sqlfile)) . ')</div>';
    echo '<div>Database: <b>' . $db_name . '</b></div>';
    flush();
    import($sqlfile, post('ignore_errors'), post('transaction'), post('force_myisam'), post('query_start', 'int'));
Пример #8
0
    $begin = date("Y-m-d", time() - 90 * 24 * 3600);
}
# XXX allow option to include inactive and/or deleted
if (!$_REQUEST['all']) {
    $criteria[] = "(active AND NOT deleted)";
}
$q = "SELECT\n            item.id AS meta,\n            item.code Code\$item,\n            item.name Name\$name,\n            brand.name Brand\$brand,\n            retail_price MSRP\$dollar,\n            IF(item.discount_type,\n               CASE item.discount_type\n                 WHEN 'percentage' THEN ROUND(retail_price * ((100 - item.discount) / 100), 2)\n                 WHEN 'relative' THEN (retail_price - item.discount) \n                 WHEN 'fixed' THEN (item.discount)\n               END,\n               NULL) Sale\$dollar,\n            CASE item.discount_type\n              WHEN 'percentage' THEN CONCAT(ROUND(item.discount), '% off')\n              WHEN 'relative' THEN CONCAT('\$', item.discount, ' off')\n            END Discount\$discount,\n            (SELECT SUM(allocated) FROM txn_line WHERE item = item.id) Stock\$right,\n            minimum_quantity Minimum\$right,\n            (SELECT -1 * SUM(allocated)\n               FROM txn_line JOIN txn ON (txn = txn.id)\n              WHERE type = 'customer'\n                AND item = item.id AND filled > NOW() - INTERVAL 3 MONTH)\n            AS Last3Months\$right,\n            active Active\$bool\n       FROM item\n  LEFT JOIN brand ON (item.brand = brand.id)\n  LEFT JOIN barcode ON (item.id = barcode.item)\n      WHERE {$sql_criteria}\n   GROUP BY item.id\n   ORDER BY 2";
$r = $db->query($q) or die($db->error);
if ($r->num_rows == 1) {
    $row = $r->fetch_assoc();
    ob_end_clean();
    header("Location: item.php?id=" . $row['meta']);
    exit;
}
ob_end_flush();
dump_table($r);
?>
<div class="panel-group" id="accordion">
  <div class="panel panel-default">
    <div class="panel-heading">
      <h4 class="panel-title">
        <a data-toggle="collapse" data-parent="#accordion"
           href="#bulk-edit-form">
          Bulk Edit
        </a>
      </h4>
    </div>
    <div id="bulk-edit-form" class="panel-collapse collapse">
      <div class="panel-body">
        <form class="form-horizontal">
          <div class="form-group">
Пример #9
0
    // @structure
    dump_all($data = false);
} else {
    if (2 == $_GET['dump_all']) {
        // @data
        dump_all($data = true);
    }
}
// ------------------------------
// @export
// ------------------------------
GET("dump_table", "string");
GET("type", "string");
if ($_GET['dump_table']) {
    $type = $_GET["type"] ? $_GET["type"] : "table";
    dump_table($_GET['dump_table'], $type);
}
// ------------------------------
// @csv
// ------------------------------
GET("export", "string");
GET("query", "string");
GET("separator", "string");
if ('csv' == $_GET['export']) {
    export_csv(base64_decode($_GET['query']), $_GET['separator']);
}
// ------------------------------
// @import PHP
// ------------------------------
POST("sqlfile", "string");
POST("ignore_errors", "bool");
Пример #10
0
    </div>
  </div>
  <div class="form-group">
    <div class="col-sm-offset-2 col-sm-10">
      <input type="submit" class="btn btn-primary" value="Show">
    </div>
  </div>
</form>
<div id="results">
<?php 
$q = "SELECT\n            item.id AS meta,\n            item.code Code\$item,\n            item.name Name\$name,\n            item.retail_price AS OldList\$dollar,\n            vendor_item.retail_price AS NewList\$dollar,\n            sale_price(item.retail_price, item.discount_type, item.discount)\n              AS OldSale\$dollar,\n            CONCAT('\$', CAST(vendor_item.net_price / 0.6 AS DECIMAL(9,2)),\n                   ' - ',\n                   '\$', CAST(vendor_item.net_price / 0.5 AS DECIMAL(9,2)))\n              AS NewSale,\n            (SELECT SUM(allocated) FROM txn_line WHERE item = item.id)\n              AS Stock\n       FROM item\n       LEFT JOIN vendor_item ON item.id = vendor_item.item\n       LEFT JOIN brand ON item.brand = brand.id\n       LEFT JOIN barcode ON (item.id = barcode.item)\n      WHERE vendor_item.retail_price != item.retail_price\n        AND active AND NOT deleted\n        AND ({$sql_criteria})\n      GROUP BY 1\n      ORDER BY 2";
function Change($row)
{
    echo '<a class="price-change" data-id="' . $row[0] . '" data-msrp="' . $row[4] . '"><i class="fa fa-money"></a>';
}
dump_table($db->query($q), 'Change$right');
dump_query($q);
?>
  <button id="download" class="btn btn-default">Download</button>
</div>
<form id="post-csv" style="display: none"
      method="post" action="api/encode-tsv.php">
  <input type="hidden" name="fn" value="item-sales.txt">
  <textarea id="file" name="file"></textarea>
</form>
<?php 
foot();
?>
<script type="text/html" id="change-template">
  <form class="form price-change-form">
    <input type="hidden" name="id">
function sqlbackup($ip, $sql, $username, $password)
{
    global $meurl;
    if (class_exists('ZipArchive')) {
        maintop("MySQL Backup");
        $database = $sql;
        $options = array('hostname' => $ip, 'charset' => 'utf8', 'filename' => $database . '.sql', 'username' => $username, 'password' => $password);
        mysql_connect($options['hostname'], $options['username'], $options['password']) or die("Fail to connect DB!");
        mysql_select_db($database) or die("Database name error!");
        mysql_query("SET NAMES '{$options['charset']}'");
        $tables = list_tables($database);
        $filename = sprintf($options['filename'], $database);
        $fp = fopen($filename, 'w');
        foreach ($tables as $table) {
            dump_table($table, $fp);
        }
        fclose($fp);
        if (file_exists('mysql.zip')) {
            unlink('mysql.zip');
        }
        $file_name = $options['filename'];
        $zip = new ZipArchive();
        $res = $zip->open('mysql.zip', ZipArchive::CREATE);
        if ($res === TRUE) {
            $zip->addfile($file_name);
            $zip->close();
            unlink($file_name);
            echo 'Database Export and compression jobs done!' . " <a href=\"" . $meurl . "?op=root&folder=" . $_SESSION['folder'] . "\">Back</a>\n";
        } else {
            printerror('Unable to compress files!');
        }
        exit;
        mainbottom();
    } else {
        printerror('PHP on this server does not support ZipArchive, unable to extract the zip files!');
    }
}