diff --git a/foreign.inc.php b/foreign.inc.php index 194c7475..8bf57f81 100644 --- a/foreign.inc.php +++ b/foreign.inc.php @@ -1,8 +1,70 @@ query("ALTER TABLE " . idf_escape($_GET["foreign"]) . " DROP FOREIGN KEY " . idf_escape($_GET["name"])) && $_POST["drop"]) { + redirect($SELF . "table=" . urlencode($_GET["foreign"]), lang('Foreign key has been dropped.')); + } + } + $source = array_filter($_POST["source"], 'strlen'); + ksort($source); + $target = array(); + foreach ($source as $key => $val) { + $target[$key] = $_POST["target"][$key]; + } + if ($mysql->query(" + ALTER TABLE " . idf_escape($_GET["foreign"]) . " ADD FOREIGN KEY + (" . implode(", ", array_map('idf_escape', $source)) . ") + REFERENCES " . idf_escape($_POST["table"]) . " + (" . implode(", ", array_map('idf_escape', $target)) . ") + ")) { + redirect($SELF . "table=" . urlencode($_GET["foreign"]), (strlen($_GET["name"]) ? lang('Foreign key has been altered.') : lang('Foreign key has been created.'))); + } + $error = $mysql->error; +} page_header(lang('Foreign key') . ": " . htmlspecialchars($_GET["foreign"])); -if (strlen($_GET["name"])) { +if ($_POST) { + $row = $_POST; + ksort($row["source"]); + if ($_POST["add"]) { + $row["source"][] = ""; + } elseif ($_POST["change"] || $_POST["change-js"]) { + $row["target"] = array(); + } else { + echo "

" . lang('Unable to operate foreign keys') . ": " . htmlspecialchars($error) . "

\n"; + } +} elseif (strlen($_GET["name"])) { $foreign_keys = foreign_keys($_GET["foreign"]); - $foreign_key = $foreign_keys[$_GET["name"]]; + $row = $foreign_keys[$_GET["name"]]; +} else { + $row = array("table" => $_GET["foreign"], "source" => array("")); } +?> +
+

+: + + +

+ + + + $val) { + echo ""; + echo ""; + echo ""; + echo "\n"; +} +?> +
+

+ + + + +

+
diff --git a/lang.inc.php b/lang.inc.php index d6a7cf50..478ee5ef 100644 --- a/lang.inc.php +++ b/lang.inc.php @@ -107,6 +107,18 @@ function lang($idf = null, $number = null) { 'Text length' => 'Délka textů', 'Syntax highlighting' => 'Zvýrazňování syntaxe', 'phpMinAdmin homepage' => 'Domácí stránka phpMinAdmin', + 'Foreign key has been dropped.' => 'Cizí klíč byl odstraněn.', + 'Foreign key has been altered.' => 'Cizí klíč byl změněn.', + 'Foreign key has been created.' => 'Cizí klíč byl vytvořen.', + 'Foreign key' => 'Cizí klíč', + 'Unable to operate foreign keys' => 'Nepodařilo se zpracovat cizí klíče', + 'Target table' => 'Cílová tabulka', + 'Change' => 'Změnit', + 'Source' => 'Zdroj', + 'Target' => 'Cíl', + 'Add column' => 'Přidat sloupec', + 'Alter' => 'Změnit', + 'Add foreign key' => 'Přidat cizí klíč', ), ); if (!isset($idf)) {