From: jakubvrana Date: Fri, 8 Aug 2008 11:52:36 +0000 (+0000) Subject: Order by function results X-Git-Tag: v3.0.0~1077 X-Git-Url: https://git.joonet.de/?a=commitdiff_plain;h=a1ce56aadcaee895925f15bdb67703146b298f83;p=adminer.git Order by function results git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@439 7c3ca157-0c34-0410-bff1-cbf682f78f5c --- diff --git a/select.inc.php b/select.inc.php index b4d796f2..f5075103 100644 --- a/select.inc.php +++ b/select.inc.php @@ -49,8 +49,10 @@ foreach ((array) $_GET["where"] as $val) { } $order = array(); foreach ((array) $_GET["order"] as $key => $val) { - if (in_array($val, $columns, true)) { //! respect functions + if (in_array($val, $columns, true)) { $order[] = idf_escape($val) . (isset($_GET["desc"][$key]) ? " DESC" : ""); + } elseif (preg_match('(^(' . strtoupper(implode('|', $functions) . '|' . implode('|', $grouping)) . ')\\((' . implode('|', array_map('preg_quote', array_map('idf_escape', $columns))) . ')\\)$)', $val)) { + $order[] = $val . (isset($_GET["desc"][$key]) ? " DESC" : ""); } } $limit = (isset($_GET["limit"]) ? $_GET["limit"] : "30");