如何在sql中只显示某些数据表列?

时间:2017-10-29 19:48:45

标签: php mysql sql select show

我在php中创建了表,并且只想在此表中显示一些列名。我使用了SHOW语句,但它显示了所有列。这是我的代码:

$result = mysqli_query($con, "SHOW COLUMNS FROM habits ");

                        if ($result->num_rows > 0) {
                            // output data of each row
                            while ($row = $result->fetch_assoc()) {
                                echo '<tr>
                            <td scope="row">' .$row['Field'].'</td>  
                          </tr>';
                        }
                        }

如何只展示其中一些?有人知道解决方案吗?

顺便说一句,SELECT语句不适用于此代码。它显示了这个:

  

注意:未定义的索引:字段    位于第70行的\ xampp \ htdocs \ diagnoVisProject \ HabitsPharmacotherapies.php

2 个答案:

答案 0 :(得分:0)

您可以使用

SELECT column_name FROM information_schema.tables WHERE table_name = 'habits' AND (column_name='your column 1' OR column_name='your column 2')

但是如果你已经知道列名

,我不确定你会怎么做

答案 1 :(得分:0)

如果您知道要显示的列的名称,则可以添加包含这些名称的数组。然后在打印行之前,您需要验证列的名称是否在数组中。如果不是你不打印那行。

这样的事情:

$result = mysqli_query($con, "SHOW COLUMNS FROM habits ");
$allowedColums = ["column1", "column2", "etc."];
if ($result->num_rows > 0) {
    // output data of each row
    while ($row = $result->fetch_assoc()) {
        if (in_array($row['Field'], $allowedColums)) {
            echo '<tr>
                <td scope="row">' . $row['Field'] . '</td>
            </tr>';
        }
    }
}