1
0
mirror of https://github.com/vrana/adminer.git synced 2025-08-17 03:53:59 +02:00

Move backward keys to Editor

git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@1134 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
jakubvrana
2009-09-23 14:28:06 +00:00
parent 06ce6828b1
commit 09e93ded96
3 changed files with 46 additions and 32 deletions

View File

@@ -46,7 +46,7 @@ class Adminer {
}
}
function backwardKeys($table) {
function backwardKeys($table, $tableName) {
global $connection;
$return = array();
$result = $connection->query("SELECT TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME, REFERENCED_COLUMN_NAME
@@ -57,12 +57,38 @@ AND REFERENCED_TABLE_NAME = " . $connection->quote($table) . "
ORDER BY ORDINAL_POSITION"); //! requires MySQL 5
if ($result) {
while ($row = $result->fetch_assoc()) {
$return[$row["TABLE_NAME"]][$row["CONSTRAINT_NAME"]][$row["COLUMN_NAME"]] = $row["REFERENCED_COLUMN_NAME"];
$return[$row["TABLE_NAME"]]["keys"][$row["CONSTRAINT_NAME"]][$row["COLUMN_NAME"]] = $row["REFERENCED_COLUMN_NAME"];
}
}
foreach ($return as $key => $val) {
$name = $this->tableName(table_status($key));
if (strlen($name)) {
$search = preg_quote($tableName);
$separator = "(:|\\s*-)?\\s+";
$return[$key]["name"] = (preg_match("(^$search$separator(.+)|^(.+?)$separator$search\$)", $name, $match) ? $match[2] . $match[3] : $name);
} else {
unset($return[$key]);
}
}
return $return;
}
function backwardKeysPrint($backwardKeys, $row) {
if ($backwardKeys) {
echo "<td>";
foreach ($backwardKeys as $table => $backwardKey) {
foreach ($backwardKey["keys"] as $cols) {
$link = ME . 'select=' . urlencode($table);
$i = 0;
foreach ($cols as $column => $val) {
$link .= where_link($i++, $column, $row[$val]);
}
echo " <a href='" . h($link) . "'>$backwardKey[name]</a>";
}
}
}
}
function selectQuery($query) {
return "<!-- " . str_replace("--", "--><!--", $query) . " -->\n";
}
@@ -389,11 +415,11 @@ ORDER BY ORDINAL_POSITION"); //! requires MySQL 5
</p>
</form>
<?php
$this->printTables($missing);
$this->tablesPrint($missing);
}
}
function printTables($missing) {
function tablesPrint($missing) {
if ($missing != "db") {
$table_status = table_status();
if (!$table_status) {