From 9ba7490003d84909f4556a43393ebc76b40b15a8 Mon Sep 17 00:00:00 2001 From: Rouslan Placella Date: Wed, 4 Jul 2012 17:37:35 +0100 Subject: [PATCH] For navigation fetch database names from INFORMATION_SCHEMA only --- libraries/navigation/Navigation.class.php | 6 ++++-- libraries/navigation/Nodes/Node.class.php | 21 +++++---------------- navigation.php | 2 -- 3 files changed, 9 insertions(+), 20 deletions(-) diff --git a/libraries/navigation/Navigation.class.php b/libraries/navigation/Navigation.class.php index fddea68d32..5a43654b36 100644 --- a/libraries/navigation/Navigation.class.php +++ b/libraries/navigation/Navigation.class.php @@ -51,6 +51,8 @@ class PMA_Navigation { */ public function __construct() { + $GLOBALS['token'] = $_REQUEST['token']; + if (isset($_REQUEST['pos'])) { $this->pos = (int) $_REQUEST['pos']; } @@ -67,8 +69,8 @@ class PMA_Navigation { private function _getNavigationDbPos() { $query = "SELECT (COUNT(`SCHEMA_NAME`) DIV %d) * %d "; $query .= "FROM `INFORMATION_SCHEMA`.`SCHEMATA` "; - $query .= "WHERE `SCHEMA_NAME` <= '%s'"; - + $query .= "WHERE `SCHEMA_NAME` < '%s' "; + $query .= "ORDER BY `SCHEMA_NAME` ASC"; return PMA_DBI_fetch_value( sprintf( $query, diff --git a/libraries/navigation/Nodes/Node.class.php b/libraries/navigation/Nodes/Node.class.php index a03d38aa05..973e84f232 100644 --- a/libraries/navigation/Nodes/Node.class.php +++ b/libraries/navigation/Nodes/Node.class.php @@ -320,22 +320,11 @@ class Node { */ public function getData($pos) { - $retval = array(); - if (! $GLOBALS['cfg']['Servers'][$GLOBALS['server']]['DisableIS']) { - $query = "SELECT `SCHEMA_NAME` "; - $query .= "FROM `INFORMATION_SCHEMA`.`SCHEMATA` "; - $query .= "LIMIT $pos, {$GLOBALS['cfg']['MaxDbList']}"; - $retval = PMA_DBI_fetch_result($query); - } else { - $query = "SHOW DATABASES"; - $temp = PMA_DBI_fetch_result($query); - $num = min($GLOBALS['cfg']['MaxDbList'], count($temp)) + $pos; - $num = $num > count($temp) ? count($temp) : $num; - for ($i=$pos; $i<$num; $i++) { - $retval[] = $temp[$i]; - } - } - return $retval; + $query = "SELECT `SCHEMA_NAME` "; + $query .= "FROM `INFORMATION_SCHEMA`.`SCHEMATA` "; + $query .= "ORDER BY `SCHEMA_NAME` ASC "; + $query .= "LIMIT $pos, {$GLOBALS['cfg']['MaxDbList']}"; + return PMA_DBI_fetch_result($query); } /** diff --git a/navigation.php b/navigation.php index 7e94ef9d79..39b0e8c9eb 100644 --- a/navigation.php +++ b/navigation.php @@ -12,8 +12,6 @@ require_once './libraries/common.inc.php'; // Also initialises the collapsible tree class require_once './libraries/navigation/Navigation.class.php'; -$GLOBALS['token'] = $_REQUEST['token']; - // Do the magic $response = PMA_Response::getInstance(); if ($response->isAjax()) {