diff --git a/ChangeLog b/ChangeLog index ccede2d38..7c9ec0be7 100755 --- a/ChangeLog +++ b/ChangeLog @@ -7,7 +7,7 @@ $Source$ 2004-04-17 Alexander M. Turek * db_create.php, main.php, libraries/mysql_charsets.lib.php: - Added ability to choose the collation for new databases. + Added ability to set / alter collations on database level. 2004-04-16 Marc Delisle * lang/french update diff --git a/db_create.php b/db_create.php index 914c111b3..653dbf71a 100644 --- a/db_create.php +++ b/db_create.php @@ -27,7 +27,7 @@ $sql_query = 'CREATE DATABASE ' . PMA_backquote($db); if (!empty($db_collation) && PMA_MYSQL_INT_VERSION >= 40101) { list($db_charset) = explode('_', $db_collation); if (in_array($db_charset, $mysql_charsets) && in_array($db_collation, $mysql_collations[$db_charset])) { - $sql_query .= ' DEFAULT CHARACTER SET ' . $db_charset . ' COLLATE ' . $db_collation; + $sql_query .= ' DEFAULT CHARACTER SET ' . $db_charset . ($db_charset == $db_collation ? '' : ' COLLATE ' . $db_collation); } unset($db_charset, $db_collation); } diff --git a/db_details_common.php b/db_details_common.php index 866f86656..643710e4d 100644 --- a/db_details_common.php +++ b/db_details_common.php @@ -36,10 +36,12 @@ if (!isset($is_db) || !$is_db) { /** * Changes database charset if requested by the user */ -if (isset($submitcharset) && PMA_MYSQL_INT_VERSION >= 40101) { - $sql_query = 'ALTER DATABASE ' . PMA_backquote($db) . ' DEFAULT CHARACTER SET ' . $db_charset; - $result = PMA_DBI_query($sql_query); - $message = $strSuccess; +if (isset($submitcollation) && !empty($db_collation) && PMA_MYSQL_INT_VERSION >= 40101) { + list($db_charset) = explode('_', $db_collation); + $sql_query = 'ALTER DATABASE ' . PMA_backquote($db) . ' DEFAULT CHARACTER SET ' . $db_charset . ($db_charset == $db_collation ? '' : ' COLLATE ' . $db_collation); + $result = PMA_DBI_query($sql_query); + $message = $strSuccess; + unset($db_charset, $db_collation); } // Displays headers diff --git a/db_details_structure.php b/db_details_structure.php index 7d60b766e..7a6387759 100644 --- a/db_details_structure.php +++ b/db_details_structure.php @@ -105,7 +105,7 @@ if (empty($is_info)) { } } -if (PMA_MYSQL_INT_VERSION >= 40100) { +if (PMA_MYSQL_INT_VERSION >= 40101) { $db_collation = PMA_getDbCollation($db); } @@ -705,15 +705,9 @@ if (PMA_MYSQL_INT_VERSION >= 40101) { . '
  • ' . "\n" . '
    ' . "\n" . PMA_generate_common_hidden_inputs($db, $table, 3) - . ' ' . $strCharset . ' : ' . "\n" - . '  ' . "\n" - . '  ' . "\n" + . '  : ' . "\n"; + PMA_printCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION, 'db_collation', 'select_db_collation', $db_collation, FALSE, 3); + echo '  ' . "\n" . '
    ' . "\n" . '
  • ' . "\n\n"; } diff --git a/main.php b/main.php index 432527066..e102e552d 100644 --- a/main.php +++ b/main.php @@ -305,7 +305,7 @@ if ($server > 0) { . ' ' . "\n"; if (PMA_MYSQL_INT_VERSION >= 40101) { require_once('./libraries/mysql_charsets.lib.php'); - PMA_printCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION, 'db_collation', NULL, TRUE, 5); + PMA_printCharsetDropdownBox(PMA_CSDROPDOWN_COLLATION, 'db_collation', NULL, NULL, TRUE, 5); } echo ' ' . "\n" . ' ' . "\n"