diff --git a/editor/include/adminer.inc.php b/editor/include/adminer.inc.php
index 508c7dae..bab09e50 100644
--- a/editor/include/adminer.inc.php
+++ b/editor/include/adminer.inc.php
@@ -121,7 +121,7 @@ FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = " . q($this->database()) . "
AND REFERENCED_TABLE_SCHEMA = " . q($this->database()) . "
AND REFERENCED_TABLE_NAME = " . q($table) . "
-ORDER BY ORDINAL_POSITION", null, "") as $row //! requires MySQL 5
+ORDER BY ORDINAL_POSITION", null, "") as $row
) {
$return[$row["TABLE_NAME"]]["keys"][$row["CONSTRAINT_NAME"]][$row["COLUMN_NAME"]] = $row["REFERENCED_COLUMN_NAME"];
}
diff --git a/plugins/backward-keys.php b/plugins/backward-keys.php
new file mode 100644
index 00000000..a0069ec3
--- /dev/null
+++ b/plugins/backward-keys.php
@@ -0,0 +1,55 @@
+ $val) {
+ $name = Adminer\adminer()->tableName(Adminer\table_status($key, true));
+ if ($name != "") {
+ $search = preg_quote($tableName);
+ $separator = '(:|\s*-)?\s+';
+ $return[$key]["name"] = (preg_match("(^$search$separator(.+)|^(.+?)$separator$search\$)iu", $name, $match) ? $match[2] . $match[3] : $name);
+ } else {
+ unset($return[$key]);
+ }
+ }
+ return $return;
+ }
+
+ function backwardKeysPrint($backwardKeys, $row) {
+ foreach ($backwardKeys as $table => $backwardKey) {
+ foreach ($backwardKey["keys"] as $cols) {
+ $link = Adminer\ME . 'select=' . urlencode($table);
+ $i = 0;
+ foreach ($cols as $column => $val) {
+ $link .= Adminer\where_link($i++, $column, $row[$val]);
+ }
+ echo "" . Adminer\h($backwardKey["name"]) . "";
+ $link = Adminer\ME . 'edit=' . urlencode($table);
+ foreach ($cols as $column => $val) {
+ $link .= "&set" . urlencode("[" . Adminer\bracket_escape($column) . "]") . "=" . urlencode($row[$val]);
+ }
+ echo "+ ";
+ }
+ }
+ }
+}