在列而不是行中显示SQLITE输出

时间:2014-05-20 18:03:50

标签: php sql sqlite

目前我有下面的脚本,通过查看sqlite表自动生成表名和行数据。因此,无论您有2列还是10列,此脚本都可以使用。

目前脚本输出如下结果:

  

enter image description here

     

输出当前显示为行

我尝试更改脚本,以便输出如下结果。有人可以帮助或指导我朝着正确的方向实现这一目标吗?

是否可以按以下格式输出查询结果:在列中向下而不是在行中?

  

enter image description here

     

输出应显示为列

<?
    $ED = $_GET['ED'];
    $ID = $_GET['ID'];
    $table_name = $_GET['table'];
?>
<table border="1">
  <tr>
    <td>

    <table>
    <?php // Display all sqlite column names for chosen table

    $tablesquery = $db->query("PRAGMA table_info($table_name)");

    while ($table = $tablesquery->fetchArray(SQLITE3_ASSOC)) {

if ($table['name'] == "ID") {

        echo "<tr><td>" . $table['name'] . "</td></tr>";

} else {

        $table_name_header = ucwords(strtolower(str_replace('_', ' ', $table['name'])));
        echo "<tr><td>" . $table_name_header . "</td></tr>";
        } 


}
?>

    </table>

    </td>
    <td>
<table>
<?


// Display all sqlite data for chosen table

    $tablesquery = $db->query("PRAGMA table_info($table_name)");

    $columns = array();

    while ($table = $tablesquery->fetchArray(SQLITE3_ASSOC)) {
        $columns[] = $table['name'];
    }

    // Display * from USERS


//    $results = $db->query('SELECT * FROM ADMIN_LOGIN WHERE ID = "57"');
    $results = $db->query('SELECT * FROM ' . $table_name . ' WHERE ID = "' . $ID . '"');
    while ($row = $results->fetchArray()) {
//          echo "<tr>";
            $test = $row[0];
        foreach ($columns as $col) 

            echo "<tr><td>" . $row[$col] . "</td></tr>";

    }
//          echo "</tr>";
?>
</table>

    </td>
  </tr>
</table>

1 个答案:

答案 0 :(得分:0)

通过将数据放入组合数组然后通过循环将其拉回来修改下面的代码,它将根据需要显示:

<?


// Display all sqlite data for chosen table

    $tablesquery = $db->query("PRAGMA table_info($table_name)");

    $columns = array();

    while ($table = $tablesquery->fetchArray(SQLITE3_ASSOC)) {
        $columns[] = $table['name'];

    }

    // Display * from USERS


//    $results = $db->query('SELECT * FROM ADMIN_LOGIN WHERE ID = "57"');
    $results = $db->query('SELECT * FROM ' . $table_name . ' WHERE ID = "' . $ID . '"');
    while ($row = $results->fetchArray()) {
//          echo "<tr>";
            $test = $row[0];
        foreach ($columns as $col) 
        $column_data[] = $row[$col];

//            echo "<tr><td>" . $row[$col] . "</td></tr>";

    }
//          echo "</tr>";
?>

<?
$array = $columns;
$array2 = $column_data;

$result = array_combine($array, $array2);
//print_r($result);
?><br><br>
<center>
<table border="0" cellpadding="2" cellspacing="2" color="#4B708D">
<thead>
<?
foreach($result as $key => $value) {
  echo "<tr><td bgcolor='#c6d5e1'>$key</td><td bgcolor='#FFFFFF'>$value</td></tr>";
}
?>
</thead>
</table>