From 31e29a87c114d39fc18b57378b6178279a684cb9 Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Fri, 13 Jul 2007 07:15:45 +0000 Subject: [PATCH] Display foreign keys only for InnoDB git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@158 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- create.inc.php | 3 +-- functions.inc.php | 3 ++- table.inc.php | 29 ++++++++++++++++------------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/create.inc.php b/create.inc.php index 67d9f54f..3015e873 100644 --- a/create.inc.php +++ b/create.inc.php @@ -73,8 +73,7 @@ if ($_POST) { $row["fields"][$row["auto_increment"] - 1]["auto_increment"] = true; } } elseif (strlen($_GET["create"])) { - $result = table_status($_GET["create"]); - $row = $result->fetch_assoc(); + $row = table_status($_GET["create"]); $row["name"] = $_GET["create"]; $row["fields"] = array_values(fields($_GET["create"])); } else { diff --git a/functions.inc.php b/functions.inc.php index fb13011a..bca35a4c 100644 --- a/functions.inc.php +++ b/functions.inc.php @@ -42,7 +42,8 @@ function get_vals($query) { function table_status($table) { global $mysql; - return $mysql->query("SHOW TABLE STATUS LIKE '" . $mysql->escape_string(addcslashes($table, "%_")) . "'"); + $result = $mysql->query("SHOW TABLE STATUS LIKE '" . $mysql->escape_string(addcslashes($table, "%_")) . "'"); + return $result->fetch_assoc(); } function fields($table) { diff --git a/table.inc.php b/table.inc.php index 25380260..e2301d4e 100644 --- a/table.inc.php +++ b/table.inc.php @@ -5,6 +5,7 @@ $result = $mysql->query("SHOW COLUMNS FROM " . idf_escape($_GET["table"])); if (!$result) { echo "

" . lang('Unable to show the table definition') . ": " . $mysql->error . ".

\n"; } else { + $table_status = table_status($_GET["table"]); $auto_increment_only = true; echo "\n"; while ($row = $result->fetch_assoc()) { @@ -33,21 +34,23 @@ if (!$result) { } echo '

' . lang('Alter indexes') . "

\n"; - echo "

" . lang('Foreign keys') . "

\n"; - $foreign_keys = foreign_keys($_GET["table"]); - if ($foreign_keys) { - echo "
\n"; - foreach ($foreign_keys as $name => $foreign_key) { - echo ""; - echo ""; - $link = (strlen($foreign_key["db"]) ? "" . htmlspecialchars($foreign_key["db"]) . "." : "") . htmlspecialchars($foreign_key["table"]); - echo '"; - echo ''; - echo "\n"; + if ($table_status["Engine"] == "InnoDB") { + echo "

" . lang('Foreign keys') . "

\n"; + $foreign_keys = foreign_keys($_GET["table"]); + if ($foreign_keys) { + echo "
" . implode(", ", $foreign_key["source"]) . "$link(" . implode(", ", $foreign_key["target"]) . ")' . (!strlen($foreign_key["db"]) ? '' . lang('Alter') . '' : ' ') . '
\n"; + foreach ($foreign_keys as $name => $foreign_key) { + echo ""; + echo ""; + $link = (strlen($foreign_key["db"]) ? "" . htmlspecialchars($foreign_key["db"]) . "." : "") . htmlspecialchars($foreign_key["table"]); + echo '"; + echo ''; + echo "\n"; + } + echo "
" . implode(", ", $foreign_key["source"]) . "$link(" . implode(", ", $foreign_key["target"]) . ")' . (!strlen($foreign_key["db"]) ? '' . lang('Alter') . '' : ' ') . '
\n"; } - echo "\n"; + echo '

' . lang('Add foreign key') . "

\n"; } - echo '

' . lang('Add foreign key') . "

\n"; } if ($mysql->server_info >= 5) {