Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Bulk clone

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@526 7c3ca157-0c34-0410-bff1-cbf682f78f5c
  • Loading branch information...
commit 820c88203d1d4c2e0f9103a290ef2a2f70eb5add 1 parent b8ff2df
jakubvrana authored
View
21 edit.inc.php
@@ -49,12 +49,11 @@
$select[] = ($field["type"] == "enum" || $field["type"] == "set" ? "1*" . idf_escape($name) . " AS " : "") . idf_escape($name);
}
}
+ $row = array();
if ($select) {
$result = $mysql->query("SELECT " . implode(", ", $select) . " FROM " . idf_escape($_GET["edit"]) . " WHERE " . implode(" AND ", $where) . " LIMIT 1");
$row = $result->fetch_assoc();
$result->free();
- } else {
- $row = array();
}
}
?>
@@ -66,13 +65,11 @@
echo "<table border='0' cellspacing='0' cellpadding='2'>\n";
foreach ($fields as $name => $field) {
echo "<tr><th>" . htmlspecialchars($name) . "</th><td>";
- if (!isset($row)) {
- $value = $field["default"];
- } elseif (strlen($row[$name]) && ($field["type"] == "enum" || $field["type"] == "set")) {
- $value = intval($row[$name]);
- } else {
- $value = $row[$name];
- }
+ $value = (!isset($row) ? $field["default"] :
+ (strlen($row[$name]) && ($field["type"] == "enum" || $field["type"] == "set") ? intval($row[$name]) :
+ ($_POST["clone"] && $field["auto_increment"] ? "" :
+ $row[$name]
+ )));
input($name, $field, $value);
if (isset($_GET["default"]) && $field["type"] == "timestamp") {
if (!isset($create) && !$_POST) {
@@ -91,10 +88,8 @@
<input type="hidden" name="token" value="<?php echo $token; ?>" />
<?php
if (isset($_GET["select"])) {
- foreach ((array) $_POST["check"] as $val) {
- echo '<input type="hidden" name="check[]" value="' . htmlspecialchars($val) . '" />';
- }
- echo ($_POST["all"] ? "<input type='hidden' name='all' value='1' />\n" : "\n");
+ hidden_fields(array("check" => (array) $_POST["check"], "clone" => $_POST["clone"], "all" => $_POST["all"]));
+ echo "<input type='hidden' name='save' value='1' />\n";
}
if ($fields) {
?>
View
2  functions.inc.php
@@ -341,7 +341,7 @@ function table_comment(&$row) {
}
}
-function hidden_fields($process, $ignore) {
+function hidden_fields($process, $ignore = array()) {
while (list($key, $val) = each($process)) {
if (is_array($val)) {
foreach ($val as $k => $v) {
View
5 index.php
@@ -99,7 +99,7 @@ function save_coverage() {
if (isset($_GET["default"])) {
$_GET["edit"] = $_GET["default"];
}
- if (isset($_GET["select"]) && $_POST["edit"]) {
+ if (isset($_GET["select"]) && $_POST && (!$_POST["delete"] && !$_POST["export"] && !$_POST["save"])) {
$_GET["edit"] = $_GET["select"];
}
if (isset($_GET["callf"])) {
@@ -108,6 +108,9 @@ function save_coverage() {
if (isset($_GET["function"])) {
$_GET["procedure"] = $_GET["function"];
}
+ if (isset($_GET["clone"])) {
+ $_GET["edit"] = $_GET["clone"];
+ }
if (isset($_GET["sql"])) {
include "./sql.inc.php";
} elseif (isset($_GET["edit"])) {
View
4 lang/cs.inc.php
@@ -149,7 +149,6 @@
'Routine' => 'Procedura',
'Grant' => 'Povolit',
'Revoke' => 'Zakázat',
- 'Error during deleting' => 'Chyba při mazání',
'Too big POST data. Reduce the data or increase the "post_max_size" configuration directive.' => 'Příliš velká POST data. Zmenšete data nebo zvyšte hodnotu konfigurační direktivy "post_max_size".',
'Logged as: %s' => 'Přihlášen jako: %s',
'Move up' => 'Přesunout nahoru',
@@ -167,8 +166,6 @@
'Tables' => 'Tabulky',
'Structure' => 'Struktura',
'Data' => 'Data',
- // 'Export selected' => 'Exportovat označené',
- // 'Export result' => 'Exportovat výsledek',
'Event has been dropped.' => 'Událost byla odstraněna.',
'Event has been altered.' => 'Událost byla změněna.',
'Event has been created.' => 'Událost byla vytvořena.',
@@ -205,4 +202,5 @@
'%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',
'Tables have been dropped.' => 'Tabulky byla odstraněny.',
+ 'Clone' => 'Klonovat',
);
View
17 select.inc.php
@@ -67,8 +67,6 @@
$from = "FROM " . idf_escape($_GET["select"]) . ($where ? " WHERE " . implode(" AND ", $where) : "") . ($group && count($group) < count($select) ? " GROUP BY " . implode(", ", $group) : "") . ($order ? " ORDER BY " . implode(", ", $order) : "") . (strlen($limit) ? " LIMIT " . intval($limit) . (intval($_GET["page"]) ? " OFFSET " . ($limit * $_GET["page"]) : "") : "");
if ($_POST && !$error) {
- $result = true;
- $affected = 0;
if ($_POST["export"]) {
dump_headers($_GET["select"]);
dump_table($_GET["select"], "");
@@ -82,16 +80,20 @@
}
exit;
}
- $command = ($_POST["delete"] ? ($_POST["all"] && !$where ? "TRUNCATE " : "DELETE FROM ") : "UPDATE ") . idf_escape($_GET["select"]);
+ $result = true;
+ $affected = 0;
+ $command = ($_POST["delete"] ? ($_POST["all"] && !$where ? "TRUNCATE " : "DELETE FROM ") : ($_POST["clone"] ? "INSERT INTO " : "UPDATE ")) . idf_escape($_GET["select"]);
if (!$_POST["delete"]) {
$set = array();
foreach ($fields as $name => $field) {
$val = process_input($name, $field);
- if ($val !== false) {
+ if ($_POST["clone"]) {
+ $set[] = ($val !== false ? $val : idf_escape($name));
+ } elseif ($val !== false) {
$set[] = idf_escape($name) . " = $val";
}
}
- $command .= " SET " . implode(", ", $set);
+ $command .= ($_POST["clone"] ? " SELECT " . implode(", ", $set) . " FROM " . idf_escape($_GET["select"]) : " SET " . implode(", ", $set));
}
if (!$_POST["delete"] && !$set) {
// nothing
@@ -109,8 +111,9 @@
}
}
query_redirect(queries(), remove_from_uri("page"), lang('%d item(s) have been affected.', $affected), $result, false, !$result);
+ //! display edit page in case of an error
}
-page_header(lang('Select') . ": " . htmlspecialchars($_GET["select"]), ($error ? lang('Error during deleting') . ": $error" : ""));
+page_header(lang('Select') . ": " . htmlspecialchars($_GET["select"]), $error);
if (isset($rights["insert"])) {
//! pass search values forth and back
@@ -297,7 +300,7 @@ function where_change(op) {
}
echo " (" . lang('%d row(s)', $found_rows) . ")</p>\n";
- echo "<fieldset><legend>" . lang('Edit') . "</legend><input type='hidden' name='token' value='$token' /><input type='submit' name='edit' value='" . lang('Edit') . "' /> <input type='submit' name='delete' value='" . lang('Delete') . "' onclick=\"return !this.form['all'].checked || confirm('" . lang('Are you sure?') . "');\" /></fieldset>\n";
+ echo "<fieldset><legend>" . lang('Edit') . "</legend><input type='hidden' name='token' value='$token' /><input type='submit' value='" . lang('Edit') . "' /> <input type='submit' name='clone' value='" . lang('Clone') . "' /> <input type='submit' name='delete' value='" . lang('Delete') . "' onclick=\"return !this.form['all'].checked || confirm('" . lang('Are you sure?') . "');\" /></fieldset>\n";
echo "<fieldset><legend>" . lang('Export') . "</legend>$dump_options <input type='submit' name='export' value='" . lang('Export') . "' /></fieldset>\n";
echo "</form>\n";
}
Please sign in to comment.
Something went wrong with that request. Please try again.