查询未显示任何结果

时间:2015-03-04 13:47:20

标签: php mysql

我正在尝试使用PHP显示来自MySQL数据库的记录列表,但由于某种原因,我无法获得所需的结果。我的选择框不是一个完整的列表,而是一个空的小 - 它们不包含任何选项。我的代码中的错误在哪里?

<?php
    $con = mysqli_connect('127.0.0.1', 'root', 'toor', 'monster');
    if(mysqli_connect_errno()) {
        echo 'Failed to connect to MySQL' .   mysqli_connect_errno();
    }
    function query() {

        $result = mysqli_query($con, "SELECT * FROM corporations");
        while($row = mysqli_fetch_array($result)) {
            echo '<option value="' . $row['name'] . '">' .$row['name']. '</option>';
        }
    }
?>

<select name='dropdown'>
    <?php query() ?>
</select>

2 个答案:

答案 0 :(得分:3)

可变范围。您正在定义query函数之外的连接字符串,因此您无法在函数内部使用它,而不会以某种方式首先传入函数。

这应该有效:

$con = mysqli_connect('127.0.0.1', 'root', 'toor', 'monster');
if (mysqli_connect_errno())
{
    echo 'Failed to connect to MySQL' . mysqli_connect_errno();
}

function query($con)
{
    $result = mysqli_query($con, "SELECT * FROM corporations");
    while ($row = mysqli_fetch_array($result))
    {
        echo '<option value="' . $row['name'] . '">' . $row['name'] . '</option>';
    }
}

query($con); 

答案 1 :(得分:-1)

更改此

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

用这个

while($row = mysqli_fetch_assoc($result)) {