79 lines
2.4 KiB
PHTML
79 lines
2.4 KiB
PHTML
<?php
|
|
use PMA\libraries\Table;
|
|
|
|
$myfield = $save_row[$i]['Field'];
|
|
// Use an md5 as array index to avoid having special characters
|
|
// in the name attribute (see bug #1746964 )
|
|
$myfield_md5 = md5($myfield);
|
|
$myfield_html = htmlspecialchars($myfield);
|
|
|
|
$foreign_table = false;
|
|
$foreign_column = false;
|
|
|
|
// database dropdown
|
|
if (isset($existrel[$myfield])) {
|
|
$foreign_db = $existrel[$myfield]['foreign_db'];
|
|
} else {
|
|
$foreign_db = $db;
|
|
}
|
|
|
|
// table dropdown
|
|
$tables = array();
|
|
if ($foreign_db) {
|
|
if (isset($existrel[$myfield])) {
|
|
$foreign_table = $existrel[$myfield]['foreign_table'];
|
|
}
|
|
$tables_rs = $GLOBALS['dbi']->query(
|
|
'SHOW TABLES FROM ' . PMA\libraries\Util::backquote($foreign_db),
|
|
null,
|
|
PMA\libraries\DatabaseInterface::QUERY_STORE
|
|
);
|
|
while ($row = $GLOBALS['dbi']->fetchRow($tables_rs)) {
|
|
$tables[] = $row[0];
|
|
}
|
|
}
|
|
|
|
// column dropdown
|
|
$columns = array();
|
|
if ($foreign_db && $foreign_table) {
|
|
if (isset($existrel[$myfield])) {
|
|
$foreign_column = $existrel[$myfield]['foreign_field'];
|
|
}
|
|
$table_obj = new Table($foreign_table, $foreign_db);
|
|
$columns = $table_obj->getUniqueColumns(false, false);
|
|
}
|
|
?>
|
|
<tr class="<?= ($odd_row ? 'odd' : 'even'); ?>">
|
|
<td class="vmiddle">
|
|
<strong><?= $myfield_html; ?></strong>
|
|
<input type="hidden" name="fields_name[<?= $myfield_md5; ?>]"
|
|
value="<?= $myfield_html; ?>"/>
|
|
</td>
|
|
|
|
<td>
|
|
<?= PMA\libraries\Template::get('table/relation/relational_dropdown')->render(
|
|
array(
|
|
'name' => 'destination_db[' . $myfield_md5 . ']',
|
|
'title' => __('Database'),
|
|
'values' => $GLOBALS['dblist']->databases,
|
|
'foreign' => $foreign_db
|
|
)
|
|
); ?>
|
|
<?= PMA\libraries\Template::get('table/relation/relational_dropdown')->render(
|
|
array(
|
|
'name' => 'destination_table[' . $myfield_md5 . ']',
|
|
'title' => __('Table'),
|
|
'values' => $tables,
|
|
'foreign' => $foreign_table
|
|
)
|
|
); ?>
|
|
<?= PMA\libraries\Template::get('table/relation/relational_dropdown')->render(
|
|
array(
|
|
'name' => 'destination_column[' . $myfield_md5 . ']',
|
|
'title' => __('Column'),
|
|
'values' => $columns,
|
|
'foreign' => $foreign_column
|
|
)
|
|
); ?>
|
|
</td>
|
|
</tr>
|