diff --git a/adminer/include/adminer.inc.php b/adminer/include/adminer.inc.php index c2a91ef2..19a6238b 100644 --- a/adminer/include/adminer.inc.php +++ b/adminer/include/adminer.inc.php @@ -192,7 +192,7 @@ username.form['driver'].onchange(); } /** Print columns box in select - * @param array result of selectColumnsProcess() + * @param array result of selectColumnsProcess()[0] * @param array selectable columns * @return null */ diff --git a/adminer/select.inc.php b/adminer/select.inc.php index 30d1561b..f9f3f0ec 100644 --- a/adminer/select.inc.php +++ b/adminer/select.inc.php @@ -47,10 +47,9 @@ if ($_POST && !$error) { break; } } - foreach ($select as $key => $val) { - $val = $_GET["columns"][$key]; - if (!$val["fun"]) { - unset($unselected[$val["col"]]); + foreach ((array) $unselected as $key => $val) { + if (in_array(idf_escape($key), $select)) { + unset($unselected[$key]); } } if ($_POST["export"]) { @@ -257,13 +256,15 @@ if (!$columns) { foreach ($rows[0] as $key => $val) { if ($table_status["Oid"] != "t" || $key != "oid") { $val = $_GET["columns"][key($select)]; - $field = $fields[$select ? $val["col"] : $key]; + $field = $fields[$select ? ($val ? $val["col"] : current($select)) : $key]; $name = ($field ? $adminer->fieldName($field, $rank) : "*"); if ($name != "") { $rank++; $names[$key] = $name; $column = idf_escape($key); - echo '' . apply_sql_function($val["fun"], $name) . ""; // $order[0] == $key - COUNT(*) //! columns looking like functions + echo '' . (!$select || $val ? apply_sql_function($val["fun"], $name) : h(current($select))) . ""; //! columns looking like functions } $functions[$key] = $val["fun"]; next($select);