]> git.joonet.de Git - adminer.git/commitdiff
Reset table after changing DB
authorJakub Vrana <jakub@vrana.cz>
Wed, 21 Aug 2019 13:09:47 +0000 (15:09 +0200)
committerJakub Vrana <jakub@vrana.cz>
Wed, 21 Aug 2019 13:09:47 +0000 (15:09 +0200)
adminer/foreign.inc.php

index 234fcff2aad2c6c66aac6882e6f14dafe7da0b5d..c526323c2f2ba111d4610c3795af5059020db663 100644 (file)
@@ -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 "<p>" . 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);
 }
 ?>
 <input type="hidden" name="change-js" value="">