| [ Index ] |
|
Code source de phpMyAdmin 2.10.3 |
1 <?php 2 /* $Id: pmd_common.php 9853 2007-01-19 18:14:44Z lem9 $ */ 3 // vim: expandtab sw=4 ts=4 sts=4: 4 5 /* 6 @author Ivan A Kirillov (Ivan.A.Kirillov@gmail.com) 7 */ 8 9 require_once './libraries/common.lib.php'; 10 // not understand 11 require_once './libraries/header_http.inc.php'; 12 13 $GLOBALS['PMD']['STYLE'] = 'default'; 14 15 require_once './libraries/relation.lib.php'; 16 $cfgRelation = PMA_getRelationsParam(); 17 18 $script_display_field = "<script>\n var display_field = new Array();\n"; 19 20 function get_tabs() // PMA_DBI 21 { 22 global $db, $script_display_field; 23 $GLOBALS['PMD']['TABLE_NAME'] = array();// that foreach no error 24 $GLOBALS['PMD']['OWNER'] = array(); 25 $GLOBALS['PMD']['TABLE_NAME_SMALL'] = array(); 26 27 $tables = PMA_DBI_get_tables_full($db); 28 // seems to be needed later 29 PMA_DBI_select_db($db); 30 $i = 0; 31 foreach ($tables as $one_table) { 32 $GLOBALS['PMD']['TABLE_NAME'][$i] = $db . "." . $one_table['TABLE_NAME']; 33 $GLOBALS['PMD']['OWNER'][$i] = $db; 34 $GLOBALS['PMD']['TABLE_NAME_SMALL'][$i] = $one_table['TABLE_NAME']; 35 36 $GLOBALS['PMD_URL']['TABLE_NAME'][$i] = urlencode($db . "." . $one_table['TABLE_NAME']); 37 $GLOBALS['PMD_URL']['OWNER'][$i] = urlencode($db); 38 $GLOBALS['PMD_URL']['TABLE_NAME_SMALL'][$i] = urlencode($one_table['TABLE_NAME']); 39 40 $GLOBALS['PMD_OUT']['TABLE_NAME'][$i] = htmlspecialchars($db . "." . $one_table['TABLE_NAME'], ENT_QUOTES); 41 $GLOBALS['PMD_OUT']['OWNER'][$i] = htmlspecialchars($db, ENT_QUOTES); 42 $GLOBALS['PMD_OUT']['TABLE_NAME_SMALL'][$i] = htmlspecialchars($one_table['TABLE_NAME'], ENT_QUOTES); 43 44 $GLOBALS['PMD']['TABLE_TYPE'][$i] = strtoupper($one_table['ENGINE']); 45 46 $DF = PMA_getDisplayField($db, $one_table['TABLE_NAME']); 47 if($DF!='') 48 $script_display_field .= " display_field['" . $GLOBALS['PMD_URL']["TABLE_NAME_SMALL"][$i] . "'] = '" . urlencode($DF) . "';\n"; 49 50 $i++; 51 } 52 $script_display_field .= "</script>\n"; 53 // return $GLOBALS['PMD']; // many bases // not use ?????? 54 } 55 56 function get_tab_info() // PMA_DBI //PMA_backquote 57 { 58 global $db; 59 PMA_DBI_select_db($db); 60 $tab_column = array(); 61 for ( $i=0; $i < sizeof( $GLOBALS['PMD']["TABLE_NAME"] ); $i++ ) { 62 PMA_DBI_select_db($db); 63 $fields_rs = PMA_DBI_query('SHOW FULL FIELDS FROM '.PMA_backquote($GLOBALS['PMD']["TABLE_NAME_SMALL"][$i]), NULL, PMA_DBI_QUERY_STORE); 64 $fields_cnt = PMA_DBI_num_rows($fields_rs); 65 $j=0; 66 while ($row = PMA_DBI_fetch_assoc($fields_rs)) { 67 $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['COLUMN_ID'][$j] = $j; 68 $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['COLUMN_NAME'][$j] = $row['Field']; 69 $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['TYPE'][$j] = $row['Type']; 70 $tab_column[$GLOBALS['PMD']['TABLE_NAME'][$i]]['NULLABLE'][$j] = $row['Null']; 71 $j++; 72 } 73 } 74 return $tab_column; 75 } 76 //-------------------------------------CONTR----------------------------------------------- 77 function get_script_contr() { 78 global $db; 79 PMA_DBI_select_db($db); 80 $con["C_NAME"] = array(); 81 $i = 0; 82 $alltab_rs = PMA_DBI_query('SHOW TABLES FROM ' . PMA_backquote($db), NULL, PMA_DBI_QUERY_STORE); 83 while ($val = @PMA_DBI_fetch_row($alltab_rs)) { 84 $row = PMA_getForeigners($db,$val[0],'','internal'); 85 //echo "<br> internal ".$db." - ".$val[0]." - "; 86 //print_r($row ); 87 if ($row !== false) { 88 foreach ($row as $field => $value) { 89 $con['C_NAME'][$i] = ''; 90 $con['DTN'][$i] = urlencode($db . "." . $val[0]); 91 $con['DCN'][$i] = urlencode($field); 92 $con['STN'][$i] = urlencode($value['foreign_db'] . "." . $value['foreign_table']); 93 $con['SCN'][$i] = urlencode($value['foreign_field']); 94 $i++; 95 } 96 } 97 $row = PMA_getForeigners($db,$val[0],'','innodb'); 98 //echo "<br> INNO "; 99 //print_r($row ); 100 if ($row !== false) { 101 foreach ($row as $field => $value) { 102 $con['C_NAME'][$i] = ''; 103 $con['DTN'][$i] = urlencode($db.".".$val[0]); 104 $con['DCN'][$i] = urlencode($field); 105 $con['STN'][$i] = urlencode($value['foreign_db'].".".$value['foreign_table']); 106 $con['SCN'][$i] = urlencode($value['foreign_field']); 107 $i++; 108 } 109 } 110 } 111 112 $ti = 0; 113 $script_contr = "<script>\n var contr = new Array();\n"; 114 for ( $i=0; $i < sizeof( $con["C_NAME"] ); $i++ ) { 115 $script_contr .= " contr[$ti] = new Array();\n"; 116 $script_contr .= " contr[$ti]['".$con['C_NAME'][$i]."'] = new Array();\n"; 117 if (in_array($con['DTN'][$i],$GLOBALS['PMD_URL']["TABLE_NAME"]) && in_array($con['STN'][$i],$GLOBALS['PMD_URL']["TABLE_NAME"])) { 118 $script_contr .= " contr[$ti]['".$con['C_NAME'][$i]."']['".$con['DTN'][$i]."'] = new Array();\n";$m_col = array();//} 119 $script_contr .= " contr[$ti]['".$con['C_NAME'][$i]."']['".$con['DTN'][$i]."']['".$con['DCN'][$i]."'] = new Array();\n";//} 120 $script_contr .= " contr[$ti]['".$con['C_NAME'][$i]."']['".$con['DTN'][$i]."']['".$con['DCN'][$i]."'][0] = '".$con['STN'][$i]."';\n"; // 121 $script_contr .= " contr[$ti]['".$con['C_NAME'][$i]."']['".$con['DTN'][$i]."']['".$con['DCN'][$i]."'][1] = '".$con['SCN'][$i]."';\n"; // 122 } 123 $ti++; 124 } 125 $script_contr .= "</script>\n"; 126 return $script_contr; 127 } 128 129 function get_pk_or_unique_keys() { 130 global $db; 131 require_once ('./libraries/tbl_indexes.lib.php'); 132 133 PMA_DBI_select_db($db); 134 $tables_pk_or_unique_keys = array(); 135 136 for( $I=0; $I<sizeof($GLOBALS['PMD']['TABLE_NAME_SMALL']); $I++) { 137 $ret_keys = PMA_get_indexes($GLOBALS['PMD']['TABLE_NAME_SMALL'][$I]); 138 if (! empty($ret_keys)) { 139 // reset those as the function uses them by reference 140 $indexes = $indexes_info = $indexes_data = array(); 141 PMA_extract_indexes($ret_keys, $indexes, $indexes_info, $indexes_data); 142 // for now, take into account only the first index segment 143 foreach ($indexes_data as $key_name => $one_index) { 144 $column_name = $one_index[1]['Column_name']; 145 if (isset($indexes_info[$key_name]) && $indexes_info[$key_name]['Non_unique'] == 0) { 146 $tables_pk_or_unique_keys[$GLOBALS['PMD']['OWNER'][$I] . '.' .$GLOBALS['PMD']['TABLE_NAME_SMALL'][$I] . '.' . $column_name] = 1; 147 } 148 } 149 } 150 } 151 return $tables_pk_or_unique_keys; 152 } 153 154 function get_all_keys() { 155 global $db; 156 require_once ('./libraries/tbl_indexes.lib.php'); 157 158 PMA_DBI_select_db($db); 159 $tables_all_keys = array(); 160 161 for( $I=0; $I<sizeof($GLOBALS['PMD']['TABLE_NAME_SMALL']); $I++) { 162 $ret_keys = PMA_get_indexes($GLOBALS['PMD']['TABLE_NAME_SMALL'][$I]); 163 if (! empty($ret_keys)) { 164 // reset those as the function uses them by reference 165 $indexes = $indexes_info = $indexes_data = array(); 166 PMA_extract_indexes($ret_keys, $indexes, $indexes_info, $indexes_data); 167 // for now, take into account only the first index segment 168 foreach ($indexes_data as $one_index) { 169 $column_name = $one_index[1]['Column_name']; 170 $tables_all_keys[$GLOBALS['PMD']['OWNER'][$I] . '.' .$GLOBALS['PMD']['TABLE_NAME_SMALL'][$I] . '.' . $column_name] = 1; 171 } 172 } 173 } 174 return $tables_all_keys; 175 } 176 177 function get_script_tabs() { 178 $script_tabs = "<script>\n var j_tabs = new Array();\n"; 179 for ( $i=0; $i < sizeof( $GLOBALS['PMD']['TABLE_NAME'] ); $i++ ) { 180 $script_tabs .= "j_tabs['".$GLOBALS['PMD_URL']['TABLE_NAME'][$i]."'] = '".$GLOBALS['PMD']['TABLE_TYPE'][$i]."';\n"; 181 } 182 $script_tabs .= "</script>\n"; 183 return $script_tabs; 184 } 185 186 function get_tab_pos() { 187 $stmt = PMA_query_as_cu("SELECT * FROM " . PMA_backquote($GLOBALS['cfgRelation']['designer_coords']), FALSE, PMA_DBI_QUERY_STORE); 188 if ( $stmt ) // exist table repository 189 { 190 while ($t_p = PMA_DBI_fetch_array($stmt, MYSQL_ASSOC)) { 191 $t_name = $t_p['db_name'] . '.' . $t_p['table_name']; 192 $tab_pos[ $t_name ]['X'] = $t_p['x']; 193 $tab_pos[ $t_name ]['Y'] = $t_p['y']; 194 $tab_pos[ $t_name ]['V'] = $t_p['v']; 195 $tab_pos[ $t_name ]['H'] = $t_p['h']; 196 } 197 } 198 return isset($tab_pos) ? $tab_pos : NULL; 199 } 200 201 function get_owners() { 202 $m = array(); 203 $j = 0; 204 for ( $i=0; $i < sizeof( $GLOBALS['PMD']["OWNER"] ); $i++ ) { 205 if( ! in_array($GLOBALS['PMD']["OWNER"][$i],$m)) { 206 $m[$j++] = $GLOBALS['PMD']["OWNER"][$i]; 207 } 208 } 209 return $m; 210 } 211 212 get_tabs(); 213 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Mon Nov 26 15:18:20 2007 | par Balluche grâce à PHPXref 0.7 |
|