diff --git a/adminer/foreign.inc.php b/adminer/foreign.inc.php index 234fcff2..c526323c 100644 --- a/adminer/foreign.inc.php +++ b/adminer/foreign.inc.php @@ -59,12 +59,12 @@ if ($row["db"] != "") { if ($row["ns"] != "") { set_schema($row["ns"]); } -$target = ($TABLE === $row["table"] ? $source : array_keys(fields($row["table"]))); $referencable = array_keys(array_filter(table_status('', true), 'fk_support')); +$target = ($TABLE === $row["table"] ? $source : array_keys(fields(in_array($row["table"], $referencable) ? $row["table"] : reset($referencable)))); $onchange = "this.form['change-js'].value = '1'; this.form.submit();"; echo "
" . lang('Target table') . ": " . html_select("table", $referencable, $row["table"], $onchange) . "\n"; if ($jush == "pgsql") { - echo lang('Schema') . ": " . html_select("ns", $adminer->schemas(), $row["ns"] ? $row["ns"] : $_GET["ns"], $onchange); + echo lang('Schema') . ": " . html_select("ns", $adminer->schemas(), $row["ns"] != "" ? $row["ns"] : $_GET["ns"], $onchange); } elseif ($jush != "sqlite") { $dbs = array(); foreach ($adminer->databases() as $db) { @@ -72,7 +72,7 @@ if ($jush == "pgsql") { $dbs[] = $db; } } - echo lang('DB') . ": " . html_select("db", $dbs, $row["db"] ? $row["db"] : $_GET["db"], $onchange); + echo lang('DB') . ": " . html_select("db", $dbs, $row["db"] != "" ? $row["db"] : $_GET["db"], $onchange); } ?>