diff --git a/browse_foreigners.php b/browse_foreigners.php index 4d2670aa4..f0c024dc1 100644 --- a/browse_foreigners.php +++ b/browse_foreigners.php @@ -38,7 +38,7 @@ if (isset($foreign_navig) && $foreign_navig == $strShowAll) { unset($foreign_limit); } -require './libraries/get_foreign.lib.php'; +$foreignData = PMA_getForeignData($foreigners, $field, $override_total, isset($foreign_filter) ? $foreign_filter : '', $foreign_limit); if (isset($pk)) { $pk_uri = '&pk=' . urlencode($pk); @@ -51,19 +51,18 @@ if (isset($pk)) { $gotopage = ''; $showall = ''; -// $the_total comes from get_foreign.lib.php -if (isset($disp_row) && is_array($disp_row)) { +if (is_array($foreignData['disp_row'])) { - if ($cfg['ShowAll'] && ($the_total > $per_page)) { + if ($cfg['ShowAll'] && ($foreignData['the_total'] > $per_page)) { $showall = ''; } $session_max_rows = $per_page; $pageNow = @floor($pos / $session_max_rows) + 1; - $nbTotalPage = @ceil($the_total / $session_max_rows); + $nbTotalPage = @ceil($foreignData['the_total'] / $session_max_rows); - if ($the_total > $per_page) { + if ($foreignData['the_total'] > $per_page) { $gotopage = PMA_pageselector( 'browse_foreigners.php?field=' . urlencode($field) . '&' . PMA_generate_common_url($db, $table) @@ -163,7 +162,7 @@ if (isset($disp_row) && is_array($disp_row)) {
' . $strKeyname . ' | ' . $strDescription . ' | @@ -178,14 +177,14 @@ if (isset($disp_row) && is_array($disp_row)) { $values = array(); $keys = array(); - foreach ($disp_row as $relrow) { - if ($foreign_display != FALSE) { - $values[] = $relrow[$foreign_display]; + foreach ($foreignData['disp_row'] as $relrow) { + if ($foreignData['foreign_display'] != FALSE) { + $values[] = $relrow[$foreignData['foreign_display']]; } else { $values[] = ''; } - $keys[] = $relrow[$foreign_field]; + $keys[] = $relrow[$foreignData['foreign_field']]; } asort($keys); diff --git a/libraries/get_foreign.lib.php b/libraries/get_foreign.lib.php deleted file mode 100644 index 4d4e1a7be..000000000 --- a/libraries/get_foreign.lib.php +++ /dev/null @@ -1,80 +0,0 @@ - - */ - - -// lem9: we always show the foreign field in the drop-down; if a display -// field is defined, we show it besides the foreign field -$foreign_link = false; -if ($foreigners && isset($foreigners[$field])) { - $foreigner = $foreigners[$field]; - $foreign_db = $foreigner['foreign_db']; - $foreign_table = $foreigner['foreign_table']; - $foreign_field = $foreigner['foreign_field']; - - // Count number of rows in the foreign table. Currently we do - // not use a drop-down if more than 200 rows in the foreign table, - // for speed reasons and because we need a better interface for this. - // - // We could also do the SELECT anyway, with a LIMIT, and ensure that - // the current value of the field is one of the choices. - - $the_total = PMA_Table::countRecords($foreign_db, $foreign_table, TRUE); - - if ((isset($override_total) && $override_total == true) || $the_total < $cfg['ForeignKeyMaxLimit']) { - // foreign_display can be FALSE if no display field defined: - $foreign_display = PMA_getDisplayField($foreign_db, $foreign_table); - - $f_query_main = 'SELECT ' . PMA_backquote($foreign_field) - . (($foreign_display == FALSE) ? '' : ', ' . PMA_backquote($foreign_display)); - $f_query_from = ' FROM ' . PMA_backquote($foreign_db) . '.' . PMA_backquote($foreign_table); - $f_query_filter = empty($foreign_filter) ? '' : ' WHERE ' . PMA_backquote($foreign_field) - . ' LIKE "%' . PMA_sqlAddslashes($foreign_filter, TRUE) . '%"' - . (($foreign_display == FALSE) ? '' : ' OR ' . PMA_backquote($foreign_display) - . ' LIKE "%' . PMA_sqlAddslashes($foreign_filter, TRUE) . '%"' - ); - $f_query_order = ($foreign_display == FALSE) ? '' :' ORDER BY ' . PMA_backquote($foreign_table) . '.' . PMA_backquote($foreign_display); - $f_query_limit = isset($foreign_limit) ? $foreign_limit : ''; - - if (!empty($foreign_filter)) { - $res = PMA_DBI_query('SELECT COUNT(*)' . $f_query_from . $f_query_filter); - if ($res) { - $the_total = PMA_DBI_fetch_value($res); - @PMA_DBI_free_result($res); - } else { - $the_total = 0; - } - } - - $disp = PMA_DBI_query($f_query_main . $f_query_from . $f_query_filter . $f_query_order . $f_query_limit); - if ($disp && PMA_DBI_num_rows($disp) > 0) { - // garvin: If a resultset has been created, pre-cache it in the $disp_row array - // This helps us from not needing to use mysql_data_seek by accessing a pre-cached - // PHP array. Usually those resultsets are not that big, so a performance hit should - // not be expected. - $disp_row = array(); - while ($single_disp_row = @PMA_DBI_fetch_assoc($disp)) { - $disp_row[] = $single_disp_row; - } - @PMA_DBI_free_result($disp); - } - } else { - unset($disp_row); - $foreign_link = true; - } -} // end if $foreigners - -?> diff --git a/tbl_select.php b/tbl_select.php index 183e481d6..3aa33e5e5 100644 --- a/tbl_select.php +++ b/tbl_select.php @@ -241,13 +241,9 @@ while (list($operator) = each($GLOBALS['cfg']['UnaryOperators'])) { //
---|