]> git.joonet.de Git - adminer.git/commitdiff
Display SQL function with braces in select heading
authorjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Fri, 24 Jul 2009 06:33:30 +0000 (06:33 +0000)
committerjakubvrana <jakubvrana@7c3ca157-0c34-0410-bff1-cbf682f78f5c>
Fri, 24 Jul 2009 06:33:30 +0000 (06:33 +0000)
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@894 7c3ca157-0c34-0410-bff1-cbf682f78f5c

adminer/include/adminer.inc.php
adminer/select.inc.php
editor/include/adminer.inc.php

index a3dd2ef373d183ad00c051531267ddd0c24f5432..2cb57194be39df9064c9828b68d12038217a3f25 100644 (file)
@@ -59,7 +59,7 @@ function adminer_table_name($table_status) {
 * @return string
 */
 function adminer_field_name($field) {
-       return call_adminer('field_name', ($field ? '<span title="' . htmlspecialchars($field["full_type"]) . '">' . htmlspecialchars($field["field"]) . '</span>' : "*"), $field);
+       return call_adminer('field_name', '<span title="' . htmlspecialchars($field["full_type"]) . '">' . htmlspecialchars($field["field"]) . '</span>', $field);
 }
 
 /** Links after select heading
index af1b09dccb1122973440f2bf768450a5ecd4ce71..1db65ae28eb7810a52669d19ce9b568f9411cdac 100644 (file)
@@ -31,11 +31,18 @@ foreach ($fields as $key => $field) {
        $rights += $field["privileges"];
 }
 
+function apply_sql_function($function, $column) {
+       return ($function
+               ? ($function == "distinct" ? "COUNT(DISTINCT " : strtoupper("$function(") . "$column)")
+               : $column
+       );
+}
+
 $select = array(); // select expressions, empty for *
 $group = array(); // expressions without aggregation - will be used for GROUP BY if an aggregation function is used
 foreach ((array) $_GET["columns"] as $key => $val) {
        if ($val["fun"] == "count" || (isset($columns[$val["col"]]) && (!$val["fun"] || in_array($val["fun"], $functions) || in_array($val["fun"], $grouping)))) {
-               $select[$key] = (isset($columns[$val["col"]]) ? ($val["fun"] ? ($val["fun"] == "distinct" ? "COUNT(DISTINCT " : strtoupper("$val[fun](")) . idf_escape($val["col"]) . ")" : idf_escape($val["col"])) : "COUNT(*)");
+               $select[$key] = apply_sql_function($val["fun"], (isset($columns[$val["col"]]) ? idf_escape($val["col"]) : "*"));
                if (!in_array($val["fun"], $grouping)) {
                        $group[] = $select[$key];
                }
@@ -292,10 +299,11 @@ if (!$columns) {
                        reset($select);
                        foreach ($rows[0] as $key => $val) {
                                $val = $_GET["columns"][key($select)];
-                               $name = adminer_field_name($fields[$select ? $val["col"] : $key]);
+                               $field = $fields[$select ? $val["col"] : $key];
+                               $name = ($field ? adminer_field_name($field) : "*");
                                if (strlen($name)) {
                                        $names[$key] = $name;
-                                       echo '<th><a href="' . htmlspecialchars(remove_from_uri('(order|desc)[^=]*') . '&order%5B0%5D=' . urlencode($key) . ($_GET["order"] == array($key) && !$_GET["desc"][0] ? '&desc%5B0%5D=1' : '')) . '">' . ($val["fun"] ? strtoupper($val["fun"]) . " $name" : $name) . "</a>";
+                                       echo '<th><a href="' . htmlspecialchars(remove_from_uri('(order|desc)[^=]*') . '&order%5B0%5D=' . urlencode($key) . ($_GET["order"] == array($key) && !$_GET["desc"][0] ? '&desc%5B0%5D=1' : '')) . '">' . apply_sql_function($val["fun"], $name) . "</a>";
                                }
                                next($select);
                        }
index acce9c701a0c27c8d198d3b788f8eefdffa45708..063791d4a6e2f361855a568ddaa6aaa4b8be3122 100644 (file)
@@ -33,7 +33,7 @@ function adminer_table_name($table_status) {
 }
 
 function adminer_field_name($field) {
-       return call_adminer('field_name', ($field ? htmlspecialchars(strlen($field["comment"]) ? $field["comment"] : $field["field"]) : "*"), $field);
+       return call_adminer('field_name', htmlspecialchars(strlen($field["comment"]) ? $field["comment"] : $field["field"]), $field);
 }
 
 function adminer_select_links($table_status) {