当前位置: 首页>>代码示例>>PHP>>正文


PHP PMA_get_indexes函数代码示例

本文整理汇总了PHP中PMA_get_indexes函数的典型用法代码示例。如果您正苦于以下问题:PHP PMA_get_indexes函数的具体用法?PHP PMA_get_indexes怎么用?PHP PMA_get_indexes使用的例子?那么, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了PMA_get_indexes函数的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: PMA_check_indexes

/**
 * Function to check over array of indexes and look for common problems
 *
 * @uses    $GLOBALS['strIndexesSeemEqual']
 * @uses    PMA_get_indexes()
 * @uses    is_string()
 * @uses    is_array()
 * @uses    count()
 * @uses    array_pop()
 * @uses    reset()
 * @uses    current()
 * @access  public
 * @param   mixed       array of indexes from PMA_get_indexes()
 *                      or name of table
 * @return  string      Output HTML
 */
function PMA_check_indexes($idx_collection)
{
    if (is_string($idx_collection)) {
        $idx_collection = PMA_get_indexes($idx_collection);
    }
    // count($idx_collection) < 2:
    //   there is no need to check if there less than two indexes
    if (!is_array($idx_collection) || count($idx_collection) < 2) {
        return false;
    }
    $indexes = array();
    foreach ($idx_collection as $index_field) {
        $indexes[$index_field['Key_name']][$index_field['Column_name']] = $index_field;
    }
    $output = '';
    // remove last index from stack and ...
    while ($while_index = array_pop($indexes)) {
        // ... compare with every remaining index in stack
        foreach ($indexes as $each_index_name => $each_index) {
            if (count($while_index) !== count($each_index)) {
                // number of fields are not equal
                continue;
            }
            // compare some key elements of every column in this two indexes
            foreach ($each_index as $col_name => $each_index_column) {
                if (!isset($while_index[$col_name]) || $while_index[$col_name]['Seq_in_index'] !== $each_index_column['Seq_in_index'] || $while_index[$col_name]['Collation'] !== $each_index_column['Collation'] || $while_index[$col_name]['Sub_part'] !== $each_index_column['Sub_part'] || $while_index[$col_name]['Index_type'] !== $each_index_column['Index_type']) {
                    continue 2;
                }
            }
            // did not find any difference
            // so it makes no sense to have this two equal indexes
            // use first column from index to fetch index name
            reset($while_index);
            $first_column = current($while_index);
            $output .= '<div class="warning">';
            $output .= $GLOBALS['strIndexesSeemEqual'] . ' ';
            $output .= $each_index_name . ', ' . $first_column['Key_name'];
            $output .= '</div>';
            // there is no need to check any further indexes if we have already
            // found that this one has a duplicate
            continue 2;
        }
    }
    if ($output) {
        $output = '<tr><td colspan=7">' . $output . '</td></tr>';
    }
    return $output;
}
开发者ID:bharathi26,项目名称:openemr,代码行数:64,代码来源:tbl_indexes.lib.php

示例2: PMA_displayTableHeaders

/**
 * Displays the headers of the results table
 *
 * @param   array    which elements to display
 * @param   array    the list of fields properties
 * @param   integer  the total number of fields returned by the sql query
 * @param   array    the analyzed query
 *
 * @return  boolean  always true
 *
 * @global  string   $db               the database name
 * @global  string   $table            the table name
 * @global  string   $goto             the url to go back in case of errors
 * @global  boolean  $dontlimitchars   whether to limit the number of displayed
 *                                     characters of text type fields or not
 * @global  string   $sql_query        the sql query
 * @global  integer  $num_rows         the total number of rows returned by the
 *                                     sql query
 * @global  integer  $pos              the current position in results
 * @global  integer  $session_max_rows the maximum number of rows per page
 * @global  array    $vertical_display informations used with vertical display
 *                                     mode
 * @global  string   $disp_direction   the display mode
 *                                     (horizontal/vertical/horizontalflipped)
 * @global  integer  $repeat_cellsthe  number of row to display between two
 *                                     table headers
 *
 * @access  private
 *
 * @see     PMA_displayTable()
 */
function PMA_displayTableHeaders(&$is_display, &$fields_meta, $fields_cnt = 0, $analyzed_sql = '')
{
    global $db, $table, $goto, $dontlimitchars;
    global $sql_query, $num_rows, $pos, $session_max_rows;
    global $vertical_display, $disp_direction, $repeat_cells, $highlight_columns;
    if ($analyzed_sql == '') {
        $analyzed_sql = array();
    }
    // can the result be sorted?
    if ($is_display['sort_lnk'] == '1') {
        // Just as fallback
        $unsorted_sql_query = $sql_query;
        if (isset($analyzed_sql[0]['unsorted_query'])) {
            $unsorted_sql_query = $analyzed_sql[0]['unsorted_query'];
        }
        // we need $sort_expression and $sort_expression_nodir
        // even if there are many table references
        $sort_expression = trim(str_replace('  ', ' ', $analyzed_sql[0]['order_by_clause']));
        // Get rid of ASC|DESC (TODO: analyzer)
        preg_match('@(.*)([[:space:]]*(ASC|DESC))@si', $sort_expression, $matches);
        $sort_expression_nodir = isset($matches[1]) ? trim($matches[1]) : $sort_expression;
        // sorting by indexes, only if it makes sense (only one table ref)
        if (isset($analyzed_sql) && isset($analyzed_sql[0]) && isset($analyzed_sql[0]['querytype']) && $analyzed_sql[0]['querytype'] == 'SELECT' && isset($analyzed_sql[0]['table_ref']) && count($analyzed_sql[0]['table_ref']) == 1) {
            // grab indexes data:
            PMA_DBI_select_db($db);
            if (!defined('PMA_IDX_INCLUDED')) {
                $ret_keys = PMA_get_indexes($table);
            }
            $prev_index = '';
            foreach ($ret_keys as $row) {
                if ($row['Key_name'] != $prev_index) {
                    $indexes[] = $row['Key_name'];
                    $prev_index = $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 the following column mean....
                //    $indexes_info[$row['Key_name']]['Packed']          = $row['Packed'];
                $indexes_info[$row['Key_name']]['Comment'] = isset($row['Comment']) ? $row['Comment'] : '';
                $indexes_info[$row['Key_name']]['Index_type'] = isset($row['Index_type']) ? $row['Index_type'] : '';
                $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
            // do we have any index?
            if (isset($indexes_data)) {
                if ($disp_direction == 'horizontal' || $disp_direction == 'horizontalflipped') {
                    $span = $fields_cnt;
                    if ($is_display['edit_lnk'] != 'nn') {
                        $span++;
                    }
                    if ($is_display['del_lnk'] != 'nn') {
                        $span++;
                    }
                    if ($is_display['del_lnk'] != 'kp' && $is_display['del_lnk'] != 'nn') {
                        $span++;
                    }
                } else {
                    $span = $num_rows + floor($num_rows / $repeat_cells) + 1;
                }
                echo '<form action="sql.php" method="post">' . "\n";
                echo PMA_generate_common_hidden_inputs($db, $table, 5);
                echo '<input type="hidden" name="pos" value="' . $pos . '" />' . "\n";
                echo '<input type="hidden" name="session_max_rows" value="' . $session_max_rows . '" />' . "\n";
//.........这里部分代码省略.........
开发者ID:a195474368,项目名称:ejiawang,代码行数:101,代码来源:display_tbl.lib.php

示例3: PMA_displayTable

            $disp_mode = 'urdr111101';
        }
        if (!isset($dontlimitchars)) {
            $dontlimitchars = 0;
        }
        // hide edit and delete links for information_schema
        if (PMA_MYSQL_INT_VERSION >= 50002 && isset($db) && $db == 'information_schema') {
            $disp_mode = 'nnnn110111';
        }
        PMA_displayTable($result, $disp_mode, $analyzed_sql);
        PMA_DBI_free_result($result);
        // BEGIN INDEX CHECK See if indexes should be checked.
        if (isset($query_type) && $query_type == 'check_tbl' && isset($selected) && is_array($selected)) {
            foreach ($selected as $idx => $tbl_name) {
                $indexes = $indexes_info = $indexes_data = array();
                $tbl_ret_keys = PMA_get_indexes(urldecode($tbl_name), $err_url_0);
                PMA_extract_indexes($tbl_ret_keys, $indexes, $indexes_info, $indexes_data);
                $idx_collection = PMA_show_indexes(urldecode($tbl_name), $indexes, $indexes_info, $indexes_data, false);
                $check = PMA_check_indexes($idx_collection);
                if (!empty($check)) {
                    ?>
<table border="0" cellpadding="2" cellspacing="0">
    <tr>
        <td class="tblHeaders" colspan="7"><?php 
                    printf($strIndexWarningTable, urldecode($tbl_name));
                    ?>
</td>
    </tr>
    <?php 
                    echo $check;
                    ?>
开发者ID:robmat,项目名称:samplebator,代码行数:31,代码来源:sql.php

示例4: PMA_generate_common_url

    require_once './header.inc.php';
}
// end if
/**
 * Gets fields and indexes informations
 */
if (!defined('PMA_IDX_INCLUDED')) {
    $err_url_0 = 'db_details.php?' . PMA_generate_common_url($db);
}
//  Gets table keys and store them in arrays
$indexes = array();
$indexes_info = array();
$indexes_data = array();
// keys had already been grabbed in "tbl_properties.php"
if (!defined('PMA_IDX_INCLUDED')) {
    $ret_keys = PMA_get_indexes($table, $err_url_0);
}
PMA_extract_indexes($ret_keys, $indexes, $indexes_info, $indexes_data);
// Get fields and stores their name/type
// fields had already been grabbed in "tbl_properties.php"
if (!defined('PMA_IDX_INCLUDED')) {
    $fields_rs = PMA_DBI_query('SHOW FIELDS FROM ' . PMA_backquote($table) . ';');
    $save_row = array();
    while ($row = PMA_DBI_fetch_assoc($fields_rs)) {
        $save_row[] = $row;
    }
}
$fields_names = array();
$fields_types = array();
foreach ($save_row as $saved_row_key => $row) {
    $fields_names[] = $row['Field'];
开发者ID:BackupTheBerlios,项目名称:vhcs-svn,代码行数:31,代码来源:tbl_indexes.php

示例5: get_all_keys

function get_all_keys()
{
    global $db;
    require_once './libs/tbl_indexes.lib.php';
    PMA_DBI_select_db($db);
    $tables_all_keys = array();
    for ($I = 0; $I < sizeof($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;
}
开发者ID:BGCX261,项目名称:zhe-project-agri-hg-to-git,代码行数:21,代码来源:pmd_common.php


注:本文中的PMA_get_indexes函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。