From b9e08622ad9379b8e0a7a964d5d00d86dabe4628 Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Wed, 4 Jul 2007 14:39:45 +0000 Subject: [PATCH] Alter columns git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@23 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- create.inc.php | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/create.inc.php b/create.inc.php index 723fbbad..7dd77ba4 100644 --- a/create.inc.php +++ b/create.inc.php @@ -1,6 +1,6 @@ $field) { - if (strlen($field["name"]) && in_array($field["type"], $types)) { - $length = ($field["length"] ? "(" . intval($field["length"]) . ")" : ""); //! decimal, enum and set lengths - $fields[] = idf_escape($field["name"]) . " " . $field["type"] . $length . ($field["not_null"] ? " NOT NULL" : "") . ($field["auto_increment"] ? " AUTO_INCREMENT" : ""); + if (strlen($field["field"]) && isset($types[$field["type"]])) { + $fields[] = (!strlen($_GET["create"]) ? "" : (strlen($field["orig"]) ? "CHANGE " . idf_escape($field["orig"]) . " " : "ADD ")) . idf_escape($field["field"]) . " $field[type]" . ($field["length"] ? "($field[length])" : "") . ($field["not_null"] ? " NOT NULL" : "") . ($field["auto_increment"] ? " AUTO_INCREMENT" : ""); + } elseif (strlen($field["orig"])) { + $fields[] = "DROP " . idf_escape($field["orig"]); } } $status = ($_POST["Engine"] ? " ENGINE='" . mysql_real_escape_string($_POST["Engine"]) . "'" : "") . ($_POST["Collation"] ? " COLLATE '" . mysql_real_escape_string($_POST["Collation"]) . "'" : ""); if (strlen($_GET["create"])) { - $query = "ALTER TABLE " . idf_escape($_GET["create"]) . " RENAME TO " . idf_escape($_POST["name"]) . ", $status"; + $query = "ALTER TABLE " . idf_escape($_GET["create"]) . " " . implode(", ", $fields) . ", RENAME TO " . idf_escape($_POST["name"]) . ", $status"; $message = lang('Table has been altered.'); } else { $query = "CREATE TABLE " . idf_escape($_POST["name"]) . " (" . implode(", ", $fields) . ")$status"; @@ -31,7 +32,9 @@ page_header(strlen($_GET["create"]) ? lang('Alter table') . ': ' . htmlspecialch echo "

" . (strlen($_GET["create"]) ? lang('Alter table') . ': ' . htmlspecialchars($_GET["create"]) : lang('Create table')) . "

\n"; if ($_POST) { - echo "

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

\n"; + if (!$_POST["add"]) { + echo "

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

\n"; + } $row = $_POST; } elseif (strlen($_GET["create"])) { $row = mysql_fetch_assoc(mysql_query("SHOW TABLE STATUS LIKE '" . mysql_real_escape_string($_GET["create"]) . "'")); @@ -40,7 +43,7 @@ if ($_POST) { } else { $row = array("fields" => array()); } -//! collate columns, references, indexes, unsigned, default +//! collate columns, references, indexes, unsigned, zerofill, default ?>

@@ -56,8 +59,8 @@ foreach ($row["fields"] as $field) { if (strlen($field["field"])) { ?> -" maxlength="64" /> - +" />" maxlength="64" /> + " size="3" /> checked="checked" /> checked="checked" /> @@ -70,12 +73,13 @@ foreach ($row["fields"] as $field) { ?> - + +