在SQL列上填充下拉菜单

时间:2017-07-04 10:29:21

标签: php html sql

我一直在尝试使用SQL表的列填充下拉菜单,但我被卡住了。或者下拉菜单中的所有字段都是:Array,或下拉菜单中填充空值。

我错过了什么吗?

我试过这段代码。

SHOW COLUMNS, DESCRIBE 'TABLE' AND SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE = ikbb;

    <?php
    $conn = new mysqli('localhost', 'heijsdb_user', 'maus', 'heijsdb') 
    or die ('Cannot connect to db');
    $result = $conn->query("SHOW COLUMNS FROM ikbb FROM heijsdb");
    echo "selecteer een input om aan te passen";
    echo "<html>";
    echo "<body>";
    echo "<select name='id'>";
    while ($row = $result->fetch_assoc()) {

                $rows[0] = $row;
                  echo '<option value="'.$row.'">'.$row.'</option>';

}

    echo "</select>";
    echo "</body>";
    echo "</html>";
?>

result result 2

1 个答案:

答案 0 :(得分:0)

您正在尝试使用数组填充下拉列表,这就是您在选择输入中看到Array的原因。此外,您不应在html之后添加echo标记。

我建议使用此查询来获取表的列:

SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='your_database' AND `TABLE_NAME`='your_table'

要使用这些名称填充下拉列表,只需使用以下脚本:

<?php
$conn = new mysqli("server", "user", "password", "database");
$result = $conn->query("SELECT `COLUMN_NAME` FROM `INFORMATION_SCHEMA`.`COLUMNS` WHERE `TABLE_SCHEMA`='your_database' AND `TABLE_NAME`='your_table'");
echo '<html>';
echo '<body>';
echo '<select name="id">';
while($row = $result->fetch_assoc()) {
    echo '<option value="'.$row['COLUMN_NAME'].'">'.$row['COLUMN_NAME'].'</option>';
}
echo '</select>';
echo '</body>';
echo '</html>';
?>