From 9de4525d07e1e355f3a470100d2ecc6e5a4b7df0 Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Mon, 9 Jul 2007 22:15:11 +0000 Subject: [PATCH] Add row to any position git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@90 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- create.inc.php | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/create.inc.php b/create.inc.php index 3d1b62b2..625dba5a 100644 --- a/create.inc.php +++ b/create.inc.php @@ -22,6 +22,7 @@ if ($_POST && !$error && !$_POST["add"]) { } $fields = array(); ksort($_POST["fields"]); + $after = "FIRST"; foreach ($_POST["fields"] as $key => $field) { if (strlen($field["field"]) && isset($types[$field["type"]])) { $fields[] = (!strlen($_GET["create"]) ? "" : (strlen($field["orig"]) ? "CHANGE " . idf_escape($field["orig"]) . " " : "ADD ")) @@ -32,7 +33,9 @@ if ($_POST && !$error && !$_POST["add"]) { . ($field["null"] ? "" : " NOT NULL") . ($key == $_POST["auto_increment"] ? " AUTO_INCREMENT$auto_increment_index" : "") . " COMMENT '" . mysql_real_escape_string($field["comment"]) . "'" + . (strlen($_GET["create"]) && !strlen($field["orig"]) ? $after : "") ; + $after = "AFTER " . idf_escape($field["field"]); } elseif (strlen($field["orig"])) { $fields[] = "DROP " . idf_escape($field["orig"]); } @@ -57,22 +60,23 @@ if ($_POST && !$error && !$_POST["add"]) { page_header(strlen($_GET["create"]) ? lang('Alter table') . ': ' . htmlspecialchars($_GET["create"]) : lang('Create table')); if ($_POST) { + $row = $_POST; + ksort($row["fields"]); if (!$_POST["add"]) { echo "

" . lang('Unable to operate table') . ": " . htmlspecialchars($error) . "

\n"; + $row["fields"] = array_values($row["fields"]); + } else { + array_splice($row["fields"], key($_POST["add"]), 0, array(array())); } - $row = $_POST; if ($row["auto_increment"]) { $row["fields"][$row["auto_increment"]]["auto_increment"] = true; } } elseif (strlen($_GET["create"])) { $row = mysql_fetch_assoc(mysql_query("SHOW TABLE STATUS LIKE '" . mysql_real_escape_string($_GET["create"]) . "'")); $row["name"] = $_GET["create"]; - $row["fields"] = fields($_GET["create"]); + $row["fields"] = array_values(fields($_GET["create"])); } else { - $row = array("fields" => array()); -} -if (!$_POST || $_POST["add"]) { - $row["fields"][] = array(); + $row = array("fields" => array(array())); } $collations = collations(); ?> @@ -84,11 +88,11 @@ $collations = collations();

- + $field) { + $i++; ?> @@ -98,12 +102,12 @@ foreach ($row["fields"] as $field) { + @@ -115,13 +119,13 @@ function type_change(type) { type.form[name + '[collation]'].style.display = (/char|text|enum|set/.test(type.form[name + '[type]'].value) ? '' : 'none'); type.form[name + '[unsigned]'].style.display = (/int|float|double|decimal/.test(type.form[name + '[type]'].value) ? '' : 'none'); } -for (var i=1; > i; i++) { +for (var i=1; >= i; i++) { document.getElementById('form')['fields[' + i + '][type]'].onchange(); } document.write(' checked="checked" onclick="column_comments_click(this.checked);" />'); function column_comments_click(checked) { - for (var i=0; > i; i++) { + for (var i=0; >= i; i++) { document.getElementById('comment-' + i).style.display = (checked ? '' : 'none'); } } @@ -134,5 +138,4 @@ function column_comments_click(checked) {

-

" />" maxlength="64" /> checked="checked" /> checked="checked" /> " maxlength="255" />