Primary key links
git-svn-id: https://adminer.svn.sourceforge.net/svnroot/adminer/trunk@107 7c3ca157-0c34-0410-bff1-cbf682f78f5c
This commit is contained in:
parent
362210876a
commit
a01944e7e0
|
@ -98,6 +98,7 @@ if (extension_loaded("mysqli")) {
|
||||||
$row->orgtable = $row->table;
|
$row->orgtable = $row->table;
|
||||||
$row->orgname = $row->name;
|
$row->orgname = $row->name;
|
||||||
$row->charsetnr = ($row->blob ? 63 : 0);
|
$row->charsetnr = ($row->blob ? 63 : 0);
|
||||||
|
$row->flags = ($row->primary_key ? 2 : 0);
|
||||||
return $row;
|
return $row;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,11 +58,13 @@ function indexes($table) {
|
||||||
global $mysql;
|
global $mysql;
|
||||||
$return = array();
|
$return = array();
|
||||||
$result = $mysql->query("SHOW INDEX FROM " . idf_escape($table));
|
$result = $mysql->query("SHOW INDEX FROM " . idf_escape($table));
|
||||||
|
if ($result) {
|
||||||
while ($row = $result->fetch_assoc()) {
|
while ($row = $result->fetch_assoc()) {
|
||||||
$return[$row["Key_name"]]["type"] = ($row["Key_name"] == "PRIMARY" ? "PRIMARY" : ($row["Index_type"] == "FULLTEXT" ? "FULLTEXT" : ($row["Non_unique"] ? "INDEX" : "UNIQUE")));
|
$return[$row["Key_name"]]["type"] = ($row["Key_name"] == "PRIMARY" ? "PRIMARY" : ($row["Index_type"] == "FULLTEXT" ? "FULLTEXT" : ($row["Non_unique"] ? "INDEX" : "UNIQUE")));
|
||||||
$return[$row["Key_name"]]["columns"][$row["Seq_in_index"]] = $row["Column_name"];
|
$return[$row["Key_name"]]["columns"][$row["Seq_in_index"]] = $row["Column_name"];
|
||||||
}
|
}
|
||||||
$result->free();
|
$result->free();
|
||||||
|
}
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,6 +188,7 @@ function get_file($key) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function select($result) {
|
function select($result) {
|
||||||
|
global $SELF;
|
||||||
if (!$result->num_rows) {
|
if (!$result->num_rows) {
|
||||||
echo "<p class='message'>" . lang('No rows.') . "</p>\n";
|
echo "<p class='message'>" . lang('No rows.') . "</p>\n";
|
||||||
} else {
|
} else {
|
||||||
|
@ -199,8 +202,7 @@ function select($result) {
|
||||||
$blobs = array();
|
$blobs = array();
|
||||||
for ($j=0; $j < count($row); $j++) {
|
for ($j=0; $j < count($row); $j++) {
|
||||||
$field = $result->fetch_field();
|
$field = $result->fetch_field();
|
||||||
if (strlen($field->orgtable) && $field->primary_key) {
|
if (strlen($field->orgtable) && $field->flags & 2) {
|
||||||
$links[$j] = $field->orgtable;
|
|
||||||
if (!isset($indexes[$field->orgtable])) {
|
if (!isset($indexes[$field->orgtable])) {
|
||||||
$indexes[$field->orgtable] = array();
|
$indexes[$field->orgtable] = array();
|
||||||
foreach (indexes($field->orgtable) as $index) {
|
foreach (indexes($field->orgtable) as $index) {
|
||||||
|
@ -211,10 +213,12 @@ function select($result) {
|
||||||
}
|
}
|
||||||
$columns[$field->orgtable] = $indexes[$field->orgtable];
|
$columns[$field->orgtable] = $indexes[$field->orgtable];
|
||||||
}
|
}
|
||||||
|
if (isset($columns[$field->orgtable][$field->orgname])) {
|
||||||
unset($columns[$field->orgtable][$field->orgname]);
|
unset($columns[$field->orgtable][$field->orgname]);
|
||||||
$indexes[$field->orgtable][$field->orgname] = $j;
|
$indexes[$field->orgtable][$field->orgname] = $j;
|
||||||
$links[$j] = $field->orgtable;
|
$links[$j] = $field->orgtable;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if ($field->charsetnr == 63) {
|
if ($field->charsetnr == 63) {
|
||||||
$blobs[$j] = true;
|
$blobs[$j] = true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue