簡體   English   中英

從 MySQL 表中選擇所有列

[英]Select all columns from MySQL table

我很難從某些表中回顯某些列的內容取決於用戶選擇 - 現在我只有一個表和下面的代碼工作完美但當然其他表沒有相同的列名和值所以我嘗試修改它 - 到目前為止我被卡住了。我怎樣才能讓它動態?

謙虛地尋求一些幫助:)

<?php
function showTables($table, $order) {
    global $conn;
    $query = ("SELECT * FROM $table ORDER BY $order ASC LIMIT 0, 30 ");
    $returnTables = mysqli_query($conn, $query);

    while ($row = mysqli_fetch_assoc($returnTables)) {
        $id = $row['id'];
        $name = $row['name'];
        $surrname = $row['surrname'];
        $email = $row['email'];
        $firstTime = $row['firstTime'];
        $comment = $row['comment'];

        echo "<tr>";    
            echo "<td>$name</td>";
            echo "<td>$surrname</td>";
            echo "<td>$email</td>";
            echo "<td>$firstTime</td>";
            echo "<td>$comment</td>";         
            echo "<td class='no-print'><a href='admin.php?delete={$id}'>Usuń</a></td>"; 
        echo "</tr>";
    }
}
?>

簡單地從您的 TABLE 中獲取列名,

例如,

$sql = "SHOW COLUMNS FROM your-table";
$result = mysqli_query($conn,$sql);

while($row = mysqli_fetch_array($result)){
  echo $row['Field']."<br>";
}

編輯 2:

完整的動態示例(需要格式化 tr 和 td )

function showTables($table, $order) {

    global $conn;

    $query = "SELECT * FROM $table ORDER BY $order ASC LIMIT 0, 30 ";
    $returnTables = mysqli_query($conn, $query);

    $sql_columns_name = "SHOW COLUMNS FROM $table";

    $sql_columns_result = mysqli_query($conn,$sql_columns_name);

    $column_arr = array();

    while($row = mysqli_fetch_array($sql_columns_result)){
      $column_arr[] = $row['Field'];
    }

    echo '<table>';

    while ($row = mysqli_fetch_array($returnTables)) {

        for ($i=0; $i < count($column_arr); $i++) {
            echo "<tr>";  
              echo "<td>".$row[$column_arr[$i]]."</td><br>";
            echo "</tr>";
        }

    }

    echo '</table>';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM