diff --git a/editor/include/adminer.inc.php b/editor/include/adminer.inc.php index b7b95060..1d311772 100644 --- a/editor/include/adminer.inc.php +++ b/editor/include/adminer.inc.php @@ -127,10 +127,7 @@ ORDER BY ORDINAL_POSITION"); // uses constant number of queries to get the descriptions, join would be complex, multiple queries would be slow $descriptions = $this->values[$foreignKey["table"]]; if (!$descriptions) { - $result = $connection->query("SELECT $id, $name FROM " . idf_escape($foreignKey["table"]) . " WHERE $id IN (" . implode(", ", $ids) . ")"); - while ($row = $result->fetch_row()) { - $descriptions[$row[0]] = $row[1]; - } + $descriptions = get_key_vals("SELECT $id, $name FROM " . idf_escape($foreignKey["table"]) . " WHERE $id IN (" . implode(", ", $ids) . ")"); } // use the descriptions foreach ($rows as $n => $row) { @@ -482,13 +479,9 @@ ORDER BY ORDINAL_POSITION"); if (strlen($name)) { $return = &$this->values[$foreignKey["table"]]; if (!isset($return)) { - $result = $connection->query("SELECT $id, $name FROM " . idf_escape($foreignKey["table"]) . " ORDER BY 2 LIMIT 1001"); - $return = array(); - if ($result->num_rows < 1001) { // optionlist with more than 1000 options would be too big - $return[""] = ""; - while ($row = $result->fetch_row()) { - $return[$row[0]] = $row[1]; - } + $return = array("" => "") + get_key_vals("SELECT $id, $name FROM " . idf_escape($foreignKey["table"]) . " ORDER BY 2 LIMIT 1001"); + if (count($return) > 1001) { + $return = array(); } } return $return; diff --git a/editor/include/editing.inc.php b/editor/include/editing.inc.php index 22f08826..31cf291b 100644 --- a/editor/include/editing.inc.php +++ b/editor/include/editing.inc.php @@ -3,3 +3,13 @@ function email_header($header) { // iconv_mime_encode requires PHP 5, imap_8bit requires IMAP extension return "=?UTF-8?B?" . base64_encode($header) . "?="; //! split long lines } + +function get_key_vals($query) { + global $connection; + $return = array(); + $result = $connection->query($query); + while ($row = $result->fetch_row()) { + $return[$row[0]] = $row[1]; + } + return $return; +}