' . "\n"; } else { echo '
' . "\n"; } echo '

' . $table . '

' . "\n"; /** * Gets table informations */ // The 'show table' statement works correct since 3.23.03 $showtable = PMA_DBI_get_tables_full($db, $table); $num_rows = (isset($showtable[$table]['TABLE_ROWS']) ? $showtable[$table]['TABLE_ROWS'] : 0); $show_comment = (isset($showtable[$table]['TABLE_COMMENT']) ? $showtable[$table]['TABLE_COMMENT'] : ''); unset($showtable); /** * Gets table keys and retains them */ PMA_DBI_select_db($db); $result = PMA_DBI_query('SHOW KEYS FROM ' . PMA_backquote($table) . ';'); $primary = ''; $indexes = array(); $lastIndex = ''; $indexes_info = array(); $indexes_data = array(); $pk_array = array(); // will be use to emphasis prim. keys in the table // view while ($row = PMA_DBI_fetch_assoc($result)) { // Backups the list of primary keys if ($row['Key_name'] == 'PRIMARY') { $primary .= $row['Column_name'] . ', '; $pk_array[$row['Column_name']] = 1; } // Retains keys informations if ($row['Key_name'] != $lastIndex){ $indexes[] = $row['Key_name']; $lastIndex = $row['Key_name']; } $indexes_info[$row['Key_name']]['Sequences'][] = $row['Seq_in_index']; $indexes_info[$row['Key_name']]['Non_unique'] = $row['Non_unique']; if (isset($row['Cardinality'])) { $indexes_info[$row['Key_name']]['Cardinality'] = $row['Cardinality']; } // I don't know what does following column mean.... // $indexes_info[$row['Key_name']]['Packed'] = $row['Packed']; $indexes_info[$row['Key_name']]['Comment'] = $row['Comment']; $indexes_data[$row['Key_name']][$row['Seq_in_index']]['Column_name'] = $row['Column_name']; if (isset($row['Sub_part'])) { $indexes_data[$row['Key_name']][$row['Seq_in_index']]['Sub_part'] = $row['Sub_part']; } } // end while if ($result) { PMA_DBI_free_result($result); } /** * Gets fields properties */ $result = PMA_DBI_query('SHOW FIELDS FROM ' . PMA_backquote($table) . ';', null, PMA_DBI_QUERY_STORE); $fields_cnt = PMA_DBI_num_rows($result); if (PMA_MYSQL_INT_VERSION < 50025) { // We need this to correctly learn if a TIMESTAMP is NOT NULL, since // SHOW FULL FIELDS or INFORMATION_SCHEMA incorrectly says NULL // and SHOW CREATE TABLE says NOT NULL // http://bugs.mysql.com/20910. $show_create_table = PMA_DBI_fetch_value( 'SHOW CREATE TABLE ' . PMA_backquote($db) . '.' . PMA_backquote($table), 0, 1); $analyzed_sql = PMA_SQP_analyze(PMA_SQP_parse($show_create_table)); } // Check if we can use Relations (Mike Beck) if (!empty($cfgRelation['relation'])) { // Find which tables are related with the current one and write it in // an array $res_rel = PMA_getForeigners($db, $table); if (count($res_rel) > 0) { $have_rel = TRUE; } else { $have_rel = FALSE; } } else { $have_rel = FALSE; } // end if /** * Displays the comments of the table if MySQL >= 3.23 */ if (!empty($show_comment)) { echo $strTableComments . ': ' . htmlspecialchars($show_comment) . '

'; } /** * Displays the table structure */ ?> */ ?> */ ?> ' . $strLinksTo . '' . "\n"; } echo ' ' . "\n"; if ($cfgRelation['mimework']) { echo ' ' . "\n"; } ?> NULL'; } } else { $row['Default'] = htmlspecialchars($row['Default']); } $field_name = htmlspecialchars($row['Field']); if (PMA_MYSQL_INT_VERSION < 50025 && ! empty($analyzed_sql[0]['create_table_fields'][$field_name]['type']) && $analyzed_sql[0]['create_table_fields'][$field_name]['type'] == 'TIMESTAMP' && $analyzed_sql[0]['create_table_fields'][$field_name]['timestamp_not_null']) { // here, we have a TIMESTAMP that SHOW FULL FIELDS reports as having the // NULL attribute, but SHOW CREATE TABLE says the contrary. Believe // the latter. /** * @todo merge this logic with the one in tbl_structure.php * or move it in a function similar to PMA_DBI_get_columns_full() * but based on SHOW CREATE TABLE because information_schema * cannot be trusted in this case (MySQL bug) */ $row['Null'] = 'NO'; } ?> xml:lang="en" dir="ltr"> >*/ ?> >*/ ?> '; if (isset($res_rel[$field_name])) { echo htmlspecialchars($res_rel[$field_name]['foreign_table'] . ' -> ' . $res_rel[$field_name]['foreign_field']); } echo '' . "\n"; } echo ' ' . "\n"; if ($cfgRelation['mimework']) { $mime_map = PMA_getMIME($db, $table, true); echo ' ' . "\n"; } ?>
' . $strComments . 'MIME
' . $field_name . ''; } else { echo $field_name; } ?> '; if (isset($comments[$field_name])) { echo htmlspecialchars($comments[$field_name]); } echo ''; if (isset($mime_map[$field_name])) { echo htmlspecialchars(str_replace('_', '/', $mime_map[$field_name]['mimetype'])); } echo '

'; require_once './libraries/footer.inc.php'; ?>