From 08c4ad78096fffb7a7c0c8329c72c40ae072b523 Mon Sep 17 00:00:00 2001 From: jakubvrana Date: Sun, 18 Oct 2009 09:29:01 +0000 Subject: [PATCH] Database list - bulk drop, number of tables git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1195 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- adminer/database.inc.php | 21 +++++--------------- adminer/db.inc.php | 2 +- adminer/include/connect.inc.php | 34 +++++++++++++++++++++++++++++++-- adminer/include/mysql.inc.php | 24 +++++++++++++++++++++++ todo.txt | 1 - 5 files changed, 62 insertions(+), 20 deletions(-) diff --git a/adminer/database.inc.php b/adminer/database.inc.php index 6479ea56..62bec8e6 100644 --- a/adminer/database.inc.php +++ b/adminer/database.inc.php @@ -1,9 +1,6 @@ query("SHOW CREATE DATABASE " . idf_escape(DB)))) { - $create = $connection->result($result, 1); - if (preg_match('~ COLLATE ([^ ]+)~', $create, $match)) { - $collate = $match[1]; - } elseif (preg_match('~ CHARACTER SET ([^ ]+)~', $create, $match)) { - // default collation - $collate = $collations[$match[1]][0]; - } +} else { + $collate = db_collation(DB, $collations); } ?> @@ -76,9 +67,7 @@ if ($_POST) { \n"; -} elseif (!$_POST["add_x"]) { +if (!$_POST["add_x"]) { echo "\n"; } ?> diff --git a/adminer/db.inc.php b/adminer/db.inc.php index d2fe5f59..c5f51dd8 100644 --- a/adminer/db.inc.php +++ b/adminer/db.inc.php @@ -39,7 +39,7 @@ if ($tables_views && !$error) { page_header(lang('Database') . ": " . h(DB), $error, false); echo '

' . lang('Alter database') . "\n"; -echo '

' . lang('Database schema') . "\n"; +echo '' . lang('Database schema') . "\n"; echo "

" . lang('Tables and views') . "

\n"; $table_status = table_status(); diff --git a/adminer/include/connect.inc.php b/adminer/include/connect.inc.php index d772208b..5ba1e1ac 100644 --- a/adminer/include/connect.inc.php +++ b/adminer/include/connect.inc.php @@ -1,20 +1,50 @@ error); + } + page_header(lang('Select database'), "", null); + echo "

"; foreach (array( 'database' => lang('Create new database'), 'privileges' => lang('Privileges'), 'processlist' => lang('Process list'), 'variables' => lang('Variables'), ) as $key => $val) { - echo "

$val\n"; + echo "$val\n"; } echo "

" . lang('MySQL version: %s through PHP extension %s', "server_info < 4.1 ? " class='binary'" : "") . ">$connection->server_info", "$connection->extension") . "\n"; echo "

" . lang('Logged as: %s', "" . h($connection->result($connection->query("SELECT USER()"))) . "") . "\n"; + $databases = get_databases(); + if ($databases) { + $collations = collations(); + echo "

\n"; + echo "\n"; + echo "\n"; + foreach ($databases as $db) { + $root = h(ME) . "db=" . urlencode($db); + echo "
 " . lang('Database') . "" . lang('Collation') . "" . lang('Tables') . "
" . checkbox("db[]", $db, false); + echo "" . h($db) . ""; + echo "" . nbsp(db_collation($db, $collations)) . ""; + $result = $connection->query("SHOW TABLES FROM " . idf_escape($db)); + echo "$result->num_rows"; + echo "\n"; + } + echo "
\n"; + echo "

\n"; + echo "

\n"; + } } page_footer("db"); } diff --git a/adminer/include/mysql.inc.php b/adminer/include/mysql.inc.php index 8ddafded..29f3ae3a 100644 --- a/adminer/include/mysql.inc.php +++ b/adminer/include/mysql.inc.php @@ -177,6 +177,30 @@ function get_databases($flush = true) { return $return; } +/** Get database collation +* @param string +* @param array result of collations() +* @return +*/ +function db_collation($db, $collations) { + global $connection; + $return = null; + $result = $connection->query("SHOW CREATE DATABASE " . idf_escape($db)); + if ($result) { + $create = $connection->result($result, 1); + if (preg_match('~ COLLATE ([^ ]+)~', $create, $match)) { + $return = $match[1]; + } elseif (preg_match('~ CHARACTER SET ([^ ]+)~', $create, $match)) { + // default collation + $return = $collations[$match[1]][0]; + } + } + return $return; +} + +/**Get supported engines +* @return array +*/ function engines() { global $connection; $return = array(); diff --git a/todo.txt b/todo.txt index 8122a453..5f4f27b1 100644 --- a/todo.txt +++ b/todo.txt @@ -1,4 +1,3 @@ -Bulk database drop Add whisperer to fields with foreign key Highlight found fields MySQL 5 BIT data type