\n var display_field = new Array();\n"; /** * retrieves table info and stores it in $GLOBALS['PMD'] * * @uses $GLOBALS['script_display_field'] * @uses $GLOBALS['PMD'] to fill it * @uses $GLOBALS['db'] * @uses PMA_DBI_get_tables_full() * @uses PMA_DBI_select_db() * @uses PMA_getDisplayField() * @uses urlencode() * @uses htmlspecialchars() * @uses strtoupper() * @uses urlencode() */ function get_tabs() { $GLOBALS['PMD']['TABLE_NAME'] = array();// that foreach no error $GLOBALS['PMD']['OWNER'] = array(); $GLOBALS['PMD']['TABLE_NAME_SMALL'] = array(); $tables = PMA_DBI_get_tables_full($GLOBALS['db']); // seems to be needed later PMA_DBI_select_db($GLOBALS['db']); $i = 0; foreach ($tables as $one_table) { $GLOBALS['PMD']['TABLE_NAME'][$i] = $GLOBALS['db'] . "." . $one_table['TABLE_NAME']; $GLOBALS['PMD']['OWNER'][$i] = $GLOBALS['db']; $GLOBALS['PMD']['TABLE_NAME_SMALL'][$i] = $one_table['TABLE_NAME']; $GLOBALS['PMD_URL']['TABLE_NAME'][$i] = urlencode($GLOBALS['db'] . "." . $one_table['TABLE_NAME']); $GLOBALS['PMD_URL']['OWNER'][$i] = urlencode($GLOBALS['db']); $GLOBALS['PMD_URL']['TABLE_NAME_SMALL'][$i] = urlencode($one_table['TABLE_NAME']); $GLOBALS['PMD_OUT']['TABLE_NAME'][$i] = htmlspecialchars($GLOBALS['db'] . "." . $one_table['TABLE_NAME'], ENT_QUOTES); $GLOBALS['PMD_OUT']['OWNER'][$i] = htmlspecialchars($GLOBALS['db'], ENT_QUOTES); $GLOBALS['PMD_OUT']['TABLE_NAME_SMALL'][$i] = htmlspecialchars($one_table['TABLE_NAME'], ENT_QUOTES); $GLOBALS['PMD']['TABLE_TYPE'][$i] = strtoupper($one_table['ENGINE']); $DF = PMA_getDisplayField($GLOBALS['db'], $one_table['TABLE_NAME']); if ($DF != '') { $GLOBALS['script_display_field'] .= " display_field['" . $GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i] . "'] = '" . urlencode($DF) . "';\n"; } $i++; } $GLOBALS['script_display_field'] .= "\n"; // return $GLOBALS['PMD']; // many bases // not use ?????? } /** * retrieves table column info * * @uses $GLOBALS['db'] * @uses PMA_DBI_QUERY_STORE * @uses PMA_DBI_select_db() * @uses PMA_DBI_query() * @uses PMA_DBI_num_rows() * @uses PMA_backquote() * @uses count() * @return array table column nfo */ function get_tab_info() { PMA_DBI_select_db($GLOBALS['db']); $tab_column = array(); for ($i = 0; $i < count($GLOBALS['PMD']["TABLE_NAME"]); $i++) { $fields_rs = PMA_DBI_query('SHOW FULL FIELDS FROM '.PMA_backquote($GLOBALS['PMD']["TABLE_NAME_SMALL"][$i]), NULL, PMA_DBI_QUERY_STORE); $j = 0; while ($row = PMA_DBI_fetch_assoc($fields_rs)) { $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['COLUMN_ID'][$j] = $j; $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['COLUMN_NAME'][$j] = $row['Field']; $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['TYPE'][$j] = $row['Type']; $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['NULLABLE'][$j] = $row['Null']; $j++; } } return $tab_column; } /** * returns JavaScript code for intializing vars * * @uses $GLOBALS['db'] * @uses PMA_DBI_QUERY_STORE * @uses PMA_DBI_select_db() * @uses PMA_DBI_query() * @uses PMA_backquote() * @uses PMA_DBI_fetch_row() * @uses PMA_getForeigners() * @uses urlencode() * @uses count() * @uses in_array() * @return string JavaScript code */ function get_script_contr() { PMA_DBI_select_db($GLOBALS['db']); $con["C_NAME"] = array(); $i = 0; $alltab_rs = PMA_DBI_query('SHOW TABLES FROM ' . PMA_backquote($GLOBALS['db']), NULL, PMA_DBI_QUERY_STORE); while ($val = @PMA_DBI_fetch_row($alltab_rs)) { $row = PMA_getForeigners($GLOBALS['db'], $val[0], '', 'internal'); //echo "
internal ".$GLOBALS['db']." - ".$val[0]." - "; //print_r($row ); if ($row !== false) { foreach ($row as $field => $value) { $con['C_NAME'][$i] = ''; $con['DTN'][$i] = urlencode($GLOBALS['db'] . "." . $val[0]); $con['DCN'][$i] = urlencode($field); $con['STN'][$i] = urlencode($value['foreign_db'] . "." . $value['foreign_table']); $con['SCN'][$i] = urlencode($value['foreign_field']); $i++; } } $row = PMA_getForeigners($GLOBALS['db'], $val[0], '', 'innodb'); //echo "
INNO "; //print_r($row ); if ($row !== false) { foreach ($row as $field => $value) { $con['C_NAME'][$i] = ''; $con['DTN'][$i] = urlencode($GLOBALS['db'].".".$val[0]); $con['DCN'][$i] = urlencode($field); $con['STN'][$i] = urlencode($value['foreign_db'].".".$value['foreign_table']); $con['SCN'][$i] = urlencode($value['foreign_field']); $i++; } } } $ti = 0; $script_contr = "\n"; return $script_contr; } /** * @uses $GLOBALS['db'] * @uses $GLOBALS['PMD'] * @uses PMA_DBI_select_db() * @uses PMA_get_indexes() * @uses PMA_extract_indexes() * @uses count() * @return array unique or primary indizes */ function get_pk_or_unique_keys() { require_once './libraries/tbl_indexes.lib.php'; PMA_DBI_select_db($GLOBALS['db']); $tables_pk_or_unique_keys = array(); for ($I = 0; $I < count($GLOBALS['PMD']['TABLE_NAME_SMALL']); $I++) { $ret_keys = PMA_get_indexes($GLOBALS['PMD']['TABLE_NAME_SMALL'][$I]); if (! empty($ret_keys)) { // reset those as the function uses them by reference $indexes = $indexes_info = $indexes_data = array(); PMA_extract_indexes($ret_keys, $indexes, $indexes_info, $indexes_data); // for now, take into account only the first index segment foreach ($indexes_data as $key_name => $one_index) { $column_name = $one_index[1]['Column_name']; if (isset($indexes_info[$key_name]) && $indexes_info[$key_name]['Non_unique'] == 0) { $tables_pk_or_unique_keys[$GLOBALS['PMD']['OWNER'][$I] . '.' .$GLOBALS['PMD']['TABLE_NAME_SMALL'][$I] . '.' . $column_name] = 1; } } } } return $tables_pk_or_unique_keys; } /** * returns all indizes * * @uses $GLOBALS['db'] * @uses $GLOBALS['PMD'] * @uses PMA_DBI_select_db() * @uses PMA_get_indexes() * @uses PMA_extract_indexes() * @uses count() * @return array indizes */ function get_all_keys() { require_once './libraries/tbl_indexes.lib.php'; PMA_DBI_select_db($GLOBALS['db']); $tables_all_keys = array(); for ($I = 0; $I < count($GLOBALS['PMD']['TABLE_NAME_SMALL']); $I++) { $ret_keys = PMA_get_indexes($GLOBALS['PMD']['TABLE_NAME_SMALL'][$I]); if (! empty($ret_keys)) { // reset those as the function uses them by reference $indexes = $indexes_info = $indexes_data = array(); PMA_extract_indexes($ret_keys, $indexes, $indexes_info, $indexes_data); // for now, take into account only the first index segment foreach ($indexes_data as $one_index) { $column_name = $one_index[1]['Column_name']; $tables_all_keys[$GLOBALS['PMD']['OWNER'][$I] . '.' .$GLOBALS['PMD']['TABLE_NAME_SMALL'][$I] . '.' . $column_name] = 1; } } } return $tables_all_keys; } /** * @uses $GLOBALS['PMD'] * @uses count() * @uses in_array() * @return array ??? */ function get_script_tabs() { $script_tabs = "\n"; return $script_tabs; } function get_tab_pos() { $stmt = PMA_query_as_cu("SELECT * FROM " . PMA_backquote($GLOBALS['cfgRelation']['designer_coords']), FALSE, PMA_DBI_QUERY_STORE); if ( $stmt ) // exist table repository { while ($t_p = PMA_DBI_fetch_array($stmt, MYSQL_ASSOC)) { $t_name = $t_p['db_name'] . '.' . $t_p['table_name']; $tab_pos[ $t_name ]['X'] = $t_p['x']; $tab_pos[ $t_name ]['Y'] = $t_p['y']; $tab_pos[ $t_name ]['V'] = $t_p['v']; $tab_pos[ $t_name ]['H'] = $t_p['h']; } } return isset($tab_pos) ? $tab_pos : NULL; } function get_owners() { $m = array(); $j = 0; for ($i = 0; $i < count($GLOBALS['PMD']["OWNER"]); $i++) { if (! in_array($GLOBALS['PMD']["OWNER"][$i],$m)) { $m[$j++] = $GLOBALS['PMD']["OWNER"][$i]; } } return $m; } get_tabs(); ?>