1
0
mirror of https://github.com/vrana/adminer.git synced 2025-08-13 01:54:00 +02:00

Save SQL query to history

Display history

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@691 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
jakubvrana
2009-06-15 09:07:05 +00:00
parent ec76fad08b
commit cd0758422e
5 changed files with 21 additions and 8 deletions

View File

@@ -101,7 +101,7 @@ function query_redirect($query, $location, $message, $redirect = true, $execute
$id = "sql-" . count($_SESSION["messages"]);
$sql = "";
if ($query) {
$sql = " <a href='#$id' onclick=\"return !toggle('$id');\">" . lang('SQL command') . "</a><span id='$id' class='hidden'><br /><code class='jush-sql'>" . htmlspecialchars($query) . '</code><br /><a href="' . htmlspecialchars($SELF) . 'sql=&amp;history=' . count($_SESSION["history"][$_GET["server"]][$_GET["db"]]) . '">' . lang('Edit') . '</a></span>';
$sql = " <a href='#$id' onclick=\"return !toggle('$id');\">" . lang('SQL command') . "</a><span id='$id' class='hidden'><br /><code class='jush-sql'>" . htmlspecialchars($query) . '</code><br /><a href="' . htmlspecialchars($SELF . 'sql=&history=' . count($_SESSION["history"][$_GET["server"]][$_GET["db"]])) . '">' . lang('Edit') . '</a></span>';
$_SESSION["history"][$_GET["server"]][$_GET["db"]][] = $query;
}
if ($execute) {
@@ -230,9 +230,9 @@ function is_utf8($val) {
return (preg_match('~~u', $val) && !preg_match('~[\\0-\\x8\\xB\\xC\\xE-\\x1F]~', $val));
}
function shorten_utf8($string, $length) {
function shorten_utf8($string, $length = 80, $suffix = "") {
preg_match("~^(.{0,$length})(.?)~su", $string, $match);
return htmlspecialchars($match[1]) . ($match[2] ? "<em>...</em>" : "");
return htmlspecialchars($match[1]) . $suffix . ($match[2] ? "<em>...</em>" : "");
}
function friendly_url($val) {

View File

@@ -57,7 +57,6 @@ $translations = array(
'Select' => 'Vypsat',
'New item' => 'Nová položka',
'Search' => 'Vyhledat',
'Sort' => 'Setřídit',
'ASC' => 'vzestupně',
'DESC' => 'sestupně',
'Limit' => 'Limit',
@@ -196,7 +195,6 @@ $translations = array(
'Move' => 'Přesunout',
'Engine' => 'Úložiště',
'Save and continue edit' => 'Uložit a pokračovat v editaci',
'clone' => 'klonovat',
'original' => 'původní',
'%d item(s) have been affected.' => array('Byl ovlivněn %d záznam.', 'Byly ovlivněny %d záznamy.', 'Bylo ovlivněno %d záznamů.'),
'whole result' => 'celý výsledek',
@@ -215,4 +213,5 @@ $translations = array(
'Maximum number of allowed fields exceeded. Please increase %s and %s.' => 'Byl překročen maximální povolený počet polí. Zvyšte prosím %s a %s.',
'(anywhere)' => '(kdekoliv)',
'%.3f s' => '%.3f s',
'History' => 'Historie',
);

View File

@@ -1,10 +1,14 @@
<?php
page_header(lang('SQL command'), $error);
$history = &$_SESSION["history"][$_GET["server"]][$_GET["db"]];
if (!$error && $_POST) {
if (is_string($query = (isset($_POST["file"]) ? get_file("sql_file") : $_POST["query"]))) {
@set_time_limit(0);
$query = str_replace("\r", "", $query);
if (strlen($query) && end($history) != $query) {
$history[] = $query;
}
$delimiter = ";";
$offset = 0;
$empty = true;
@@ -24,7 +28,7 @@ if (!$error && $_POST) {
$offset = $match[0][1] + strlen($match[0][0]);
} else {
$empty = false;
echo "<pre class='jush-sql'>" . shorten_utf8(trim(substr($query, 0, $match[0][1])), 100) . "</pre>\n";
echo "<pre class='jush-sql'>" . shorten_utf8(trim(substr($query, 0, $match[0][1]))) . "</pre>\n";
flush();
$start = explode(" ", microtime());
//! don't allow changing of character_set_results, convert encoding of displayed query
@@ -79,5 +83,16 @@ if (!ini_get("file_uploads")) {
<input type="hidden" name="token" value="<?php echo $token; ?>" />
<input type="submit" name="file" value="<?php echo lang('Execute'); ?>" />
</p>
<?php
if ($history) {
echo "<fieldset><legend>" . lang('History') . "</legend>\n";
foreach ($history as $key => $val) {
echo '<a href="' . htmlspecialchars($SELF . "sql=&history=$key") . '">' . lang('Edit') . '</a> <code class="jush-sql">' . shorten_utf8(str_replace("\n", " ", $val), 80, "</code>") . "<br />\n";
}
echo "</fieldset>\n";
}
?>
</form>
<?php } ?>