需要通过在PHP中移动列来更改表数组的帮助


Need help changing table array by moving a column in PHP

我的任务是对一个PHP网页进行一些更改,这个网页是由一个离开公司的人编码的,我的PHP正是exeprt。有问题的页面显示SQL server中的数据库表,该表允许您通过更新页面更新值。目前,Update函数位于表末尾的"Action"列下,我需要将"Action"行重新定位到表的"Name"列之前。当我尝试进行更改时,我会破坏表数组,"Update"函数将不再工作。

列的当前顺序为;名称价值详细信息,行动

尝试实现的列的新顺序行动名称价值详细信息

我还包括了有问题的代码。如有任何协助,将不胜感激

注意**这是一个运行在Windows盒子上并连接到MSSQL Server 2008 的Php网站

$query = sqlsrv_query($conn, 'SELECT * FROM Database_Values ORDER BY Name ASC');
// Did the query fail?
if (!$query) {
    die( FormatErrors( sqlsrv_errors() ) );
}
// Dump all field names in result
$field_name = "";
foreach (sqlsrv_field_metadata($query) as $fieldMetadata) {
    foreach ($fieldMetadata as $name => $value) {
        if ($name == "Name") {
            $field_name .= $value . '-';
        }
    }
}
$field_name = substr_replace($field_name, "", -1);
$names = explode("-", $field_name);
?>
<div style="max-height:610px; overflow:auto;">
    <table border="1" cellspacing="0" cellpadding="0" bordercolor="#ccc" class="table" width="100%">
        <tr>
            <?php
            foreach ($names as $name) {
                ?>
                <th><?php echo $name; ?></th>
                <?php
            }
            ?>
            <th>Action</th>
        </tr>
        <?php
        // Fetch the row
        while ($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) {
            //print_r($row);
            ?>
            <tr>
                <?php
                foreach ($row as $key => $eachrow) {
                    ?>
                    <td nowrap="nowrap">
                        <?php echo $eachrow; ?>
                    </td>
                    <?php
                }
                ?>
                <td nowrap="nowrap">&nbsp;
                <?php $groupid  =   $_SESSION["gid"] ; 
                if($groupid!='1') { 
                ?>
                <a href="javascript:void(0);" title="Permission Restricted"  >Update</a>
                <?php } else { ?>
                <a href="javascript:void(0);"  onclick="update('<?php echo $row['CodeName'] ?>');">Update</a>
                  <?php } ?>  
                </td>
            </tr>
            <?php
        }
        ?>
    </table>
</div>

您所需要做的就是更改html 中th和td单元格的顺序

    $query = sqlsrv_query($conn, 'SELECT * FROM Database_Values ORDER BY Name ASC');
    // Did the query fail?
    if (!$query) {
        die( FormatErrors( sqlsrv_errors() ) );
    }
    // Dump all field names in result
    $field_name = "";
    foreach (sqlsrv_field_metadata($query) as $fieldMetadata) {
        foreach ($fieldMetadata as $name => $value) {
            if ($name == "Name") {
                $field_name .= $value . '-';
            }
        }
    }
    $field_name = substr_replace($field_name, "", -1);
    $names = explode("-", $field_name);
    ?>
    <div style="max-height:610px; overflow:auto;">
        <table border="1" cellspacing="0" cellpadding="0" bordercolor="#ccc" class="table" width="100%">
            <tr>
                <th>Action</th>
                <?php
                foreach ($names as $name) {
                    ?>
                    <th><?php echo $name; ?></th>
                    <?php
                }
                ?>
            </tr>
            <?php
            // Fetch the row
            while ($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC)) {
                //print_r($row);
                ?>
                <tr>
                    <td nowrap="nowrap">&nbsp;
                    <?php $groupid  =   $_SESSION["gid"] ; 
                    if($groupid!='1') { 
                    ?>
                    <a href="javascript:void(0);" title="Permission Restricted"  >Update</a>
                    <?php } else { ?>
                    <a href="javascript:void(0);"  onclick="update('<?php echo $row['CodeName'] ?>');">Update</a>
                      <?php } ?>  
                    </td>
                       <?php
                    foreach ($row as $key => $eachrow) {
                        ?>
                        <td nowrap="nowrap">
                            <?php echo $eachrow; ?>
                        </td>
                        <?php
                    }
                    ?>
                </tr>
                <?php
            }
            ?>
        </table>
    </div>