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();