From 55cd2fd898dc2f0aa01c9ef18a4c24f3e25598db Mon Sep 17 00:00:00 2001 From: Madhura Jayaratne Date: Mon, 3 Jan 2011 08:02:28 -0500 Subject: [PATCH] patch #3150164 [structure] Ordering by size gives incorrect results --- ChangeLog | 2 ++ libraries/database_interface.lib.php | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 14915d201..6c6795767 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,8 @@ $HeadURL: https://phpmyadmin.svn.sourceforge.net/svnroot/phpmyadmin/trunk/phpMyA 3.3.10.0 (not yet released) - patch #3147400 [structure] Aria table size printed as unknown, thanks to erickoh75 - erickoh75 +- patch #3150164 [structure] Ordering by size gives incorrect results, + thanks to Madhura Jayaratne - madhuracj 3.3.9.0 (2011-01-03) - bug [doc] Fix references to MySQL doc diff --git a/libraries/database_interface.lib.php b/libraries/database_interface.lib.php index 300a92554..8da103559 100644 --- a/libraries/database_interface.lib.php +++ b/libraries/database_interface.lib.php @@ -367,8 +367,16 @@ function PMA_DBI_get_tables_full($database, $table = false, $tbl_is_group = fals } else { // Prepare to sort by creating array of the selected sort // value to pass to array_multisort - foreach ($each_tables as $table_name => $table_data) { - ${$sort_by}[$table_name] = strtolower($table_data[$sort_by]); + + // Size = Data_length + Index_length + if ($sort_by == 'Data_length') { + foreach ($each_tables as $table_name => $table_data) { + ${$sort_by}[$table_name] = strtolower($table_data['Data_length'] + $table_data['Index_length']); + } + } else { + foreach ($each_tables as $table_name => $table_data) { + ${$sort_by}[$table_name] = strtolower($table_data[$sort_by]); + } } if ($sort_order == 'DESC') { -- 2.11.4.GIT