diff --git a/mod/data/field/latlong/field.class.php b/mod/data/field/latlong/field.class.php index 444fcb75623..cba83f99cd6 100755 --- a/mod/data/field/latlong/field.class.php +++ b/mod/data/field/latlong/field.class.php @@ -66,17 +66,22 @@ class data_field_latlong extends data_field_base { } function display_search_field($value = '') { - global $CFG, $DB, $OUTPUT; - $lats = $DB->get_records_sql_menu('SELECT id, content FROM {data_content} WHERE fieldid=? GROUP BY content ORDER BY content', array($this->field->id)); - $longs = $DB->get_records_sql_menu('SELECT id, content1 FROM {data_content} WHERE fieldid=? GROUP BY content ORDER BY content', array($this->field->id)); + global $CFG, $DB; + + $varcharlat = $DB->sql_compare_text('content'); + $varcharlong= $DB->sql_compare_text('content1'); + $latlongsrs = $DB->get_recordset_sql( + "SELECT DISTINCT $varcharlat AS la, $varcharlong AS lo + FROM {data_content} + WHERE fieldid = ? + ORDER BY $varcharlat, $varcharlong", array($this->field->id)); + $options = array(); - if(!empty($lats) && !empty($longs)) { - $options[''] = ''; - // Make first index blank. - foreach($lats as $key => $temp) { - $options[$temp.','.$longs[$key]] = $temp.','.$longs[$key]; - } + foreach ($latlongsrs as $latlong) { + $options[$latlong->la . ',' . $latlong->lo] = $latlong->la . ',' . $latlong->lo; } + $latlongsrs->close(); + return html_writer::select($options, 'f_'.$this->field->id, $value); } diff --git a/mod/data/field/menu/field.class.php b/mod/data/field/menu/field.class.php index 43682792830..97a5bf49be5 100755 --- a/mod/data/field/menu/field.class.php +++ b/mod/data/field/menu/field.class.php @@ -55,12 +55,14 @@ class data_field_menu extends data_field_base { } function display_search_field($content = '') { - global $CFG, $DB, $OUTPUT; + global $CFG, $DB; - $usedoptions = array(); - $sql = "SELECT DISTINCT content + $varcharcontent = $DB->sql_compare_text('content', 255); + $sql = "SELECT DISTINCT $varcharcontent AS content FROM {data_content} WHERE fieldid=? AND content IS NOT NULL"; + + $usedoptions = array(); if ($used = $DB->get_records_sql($sql, array($this->field->id))) { foreach ($used as $data) { $value = $data->content; @@ -84,7 +86,7 @@ class data_field_menu extends data_field_base { return ''; } - return html_writer::select($options, 'f_'.$this->field->id, $content, array(''=>' ')); + return html_writer::select($options, 'f_'.$this->field->id, $content); } function parse_search_field() { diff --git a/mod/data/field/multimenu/field.class.php b/mod/data/field/multimenu/field.class.php index b72e656453e..a03f8c6a7c3 100755 --- a/mod/data/field/multimenu/field.class.php +++ b/mod/data/field/multimenu/field.class.php @@ -74,10 +74,12 @@ class data_field_multimenu extends data_field_base { $str = '