【php开源代码栏目提醒】:网学会员php开源代码为您提供tbl_relation.php参考,解决您在tbl_relation.php学习中工作中的难题,参考学习。
<?php
/* $Id: tbl_relation.php,v 2.31.2.1 2006/04/11 17:51:03 cybot_tm Exp $ */
// vim: expandtab sw=4 ts=4 sts=4:
/**
* Gets some core libraries
*/
require_once('./libraries/common.lib.php');
require_once('./libraries/tbl_properties_common.php');
$url_query .= '&goto=tbl_properties.php';
/**
* Gets tables informations
*/
require_once('./libraries/tbl_properties_table_info.inc.php');
// Note: in libraries/tbl_properties_links.inc.php we get and display the table comment.
// For InnoDB, this comment contains the REFER information but any update
// has not been done yet (will be done in tbl_relation.php later).
$avoid_show_comment = TRUE;
/**
* Displays top menu links
*/
require_once('./libraries/tbl_properties_links.inc.php');
require_once('./libraries/relation.lib.php');
$options_array = array('CASCADE' => 'CASCADE', 'SET_NULL' => 'SET NULL', 'NO_ACTION' => 'NO ACTION', 'RESTRICT' => 'RESTRICT');
/**
* Generate dropdown choices
*
* @param string Message to display
* @param string Name of the <select> field
* @param array Choices for dropdown
* @return string The existing value (for selected)
*
* @access public
*/
function PMA_generate_dropdown($dropdown_question, $radio_name, $choices, $selected_value)
{
echo $dropdown_question . ' ';
echo '<select name="' . $radio_name . '">' . "\n";
echo '<option value="nix">--</option>' . "\n";
foreach ($choices AS $one_value => $one_label) {
echo '<option value="' . $one_value . '"';
if ($selected_value == $one_value) {
echo ' selected="selected" ';
}
echo '>' . $one_label . '</option>' . "\n";
}
echo '</select>' . "\n";
echo "\n";
}
/**
* Gets the relation settings
*/
$cfgRelation = PMA_getRelationsParam();
/**
* Updates
*/
// ensure we are positionned to our current db (since the previous reading
// of relations makes pmadb the current one, maybe depending on the MySQL version)
PMA_DBI_select_db($db);
if ($cfgRelation['relwork']) {
$existrel = PMA_getForeigners($db, $table, '', 'internal');
}
if ($tbl_type=='INNODB') {
$existrel_innodb = PMA_getForeigners($db, $table, '', 'innodb');
}
if ($cfgRelation['displaywork']) {
$disp = PMA_getDisplayField($db, $table);
}
// u p d a t e s f o r I n t e r n a l r e l a t i o n s
if (isset($destination) && $cfgRelation['relwork']) {
foreach ($destination AS $master_field => $foreign_string) {
if ($foreign_string != 'nix') {
list($foreign_db, $foreign_table, $foreign_field) = explode('.', $foreign_string);
if (!isset($existrel[$master_field])) {
$upd_query = 'INSERT INTO ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['relation'])
. '(master_db, master_table, master_field, foreign_db, foreign_table, foreign_field)'
. ' values('
. '\'' . PMA_sqlAddslashes($db) . '\', '
. '\'' . PMA_sqlAddslashes($table) . '\', '
. '\'' . PMA_sqlAddslashes($master_field) . '\', '
. '\'' . PMA_sqlAddslashes($foreign_db) . '\', '
. '\'' . PMA_sqlAddslashes($foreign_table) . '\','
. '\'' . PMA_sqlAddslashes($foreign_field) . '\')';
} elseif ($existrel[$master_field]['foreign_db'] . '.' .$existrel[$master_field]['foreign_table'] . '.' . $existrel[$master_field]['foreign_field'] != $foreign_string) {
$upd_query = 'UPDATE ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['relation']) . ' SET'
. ' foreign_db = \'' . PMA_sqlAddslashes($foreign_db) . '\', '
. ' foreign_table = \'' . PMA_
sqlAddslashes($foreign_table) . '\', '
. ' foreign_field = \'' . PMA_sqlAddslashes($foreign_field) . '\' '
. ' WHERE master_db = \'' . PMA_sqlAddslashes($db) . '\''
. ' AND master_table = \'' . PMA_sqlAddslashes($table) . '\''
. ' AND master_field = \'' . PMA_sqlAddslashes($master_field) . '\'';
} // end if... else....
} elseif (isset($existrel[$master_field])) {
$upd_query = 'DELETE FROM ' . PMA_backquote($GLOBALS['cfgRelation']['db']) . '.' . PMA_backquote($cfgRelation['relation'])
. ' WHERE master_db = \'' . PMA_sqlAddslashes($db) . '\''
. ' AND master_table = \'' . PMA_sqlAddslashes($table) . '\''
. ' AND master_field = \'' . PMA_sqlAddslashes($master_field) . '\'';
} // end if... else....
if (isset($upd_query)) {
$upd_rs = PMA_query_as_cu($upd_query);
unset($upd_query);
}
} // end while
} // end if (updates for internal relations)
// u p d a t e s f o r I n n o D B
// ( for now, one index name only; we keep the definitions if the
// foreign db is not the same)
if (isset($_REQUEST['destination_innodb'])) {
foreach ($_REQUEST['destination_innodb'] as $master_field => $foreign_string) {
if ($foreign_string != 'nix') {
list($foreign_db, $foreign_table, $foreign_field) = explode('.', $foreign_strin