while循环打印额外的空行

时间:2016-04-14 15:55:31

标签: php mysql while-loop

我有以下while循环,我用它来创建一个包含从数据库中获取的日期的下拉列表选择:

$sql = "SELECT name FROM persons";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>";
}

while循环在下拉列表中打印另一个空行,即列表中出现空行。我怎么能避免这种情况?

3 个答案:

答案 0 :(得分:1)

此代码中没有任何内容打印空选项。您确定在数据库中没有名称为NULL或为空的记录吗?

尝试添加

WHERE name IS NOT NULL and name != ""

到您的查询

答案 1 :(得分:0)

听起来你的数据库结果中有空行。您可以检查人员表,或者您可以通过执行以下操作在代码中修复它:

$sql = "SELECT name FROM persons";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    if (!empty($row['name'])) {
        echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>";

    }
}

答案 2 :(得分:0)

只需使用PHP空函数:

$sql = "SELECT name FROM persons";
$result = mysql_query($sql);
    while ($row = mysql_fetch_array($result)) {
         if(!empty($row['name']))
        {
            echo "<option value='" . $row['name'] . "'>" . $row['name'] . "</option>";
        }
}