防止PHP打印空数组结果?

时间:2012-01-02 22:45:09

标签: php mysql

如果第一个结果为空,我无法让我的PHP脚本回显第二个else语句。

我的脚本目前的工作方式是“打印地址(来自另一个数组)>列表注释”,但是即使注释为空,地址也会打印注释或者没有,我不能让脚本回显“无评论”。

if(!empty($row['id']))
        {
        echo "$row[comment]<br/>";
        }
        else
        {
            echo "no comment<br/>";
        }

任何帮助表示赞赏。感谢。

1 个答案:

答案 0 :(得分:4)

假设这来自一个数据库并且每一行都有一个id,这将始终为真:

if(!empty($row['id']))

尝试:

if(!empty($row['comment']))

如果id是其他内容,则适用相同的逻辑:检查您打算打印的值:

if (!empty($row['id']) && !empty($row['comment']))
{
    echo $row['comment'].'<br/>';
}
else
{
    echo "no comment<br/>";
}

编辑:如果此代码循环浏览附加到帖子或其他内容的所有评论,那么如果没有评论循环,则永远不会有任何输出。在这种情况下尝试这样的事情:

if (count($comments) === 0)
{
    echo "no comments<br />";
}
else
{
    foreach ($comments as $row)
    {
        if (!empty($row['comment']))
        {
            echo $row['comment'].'<br />';
        }
        else
        {
            echo "no comment<br />";
        }
    }
}

OR:

$comment_count = 0;

foreach ($comments as $row)
{
    if (!empty($row['comment']))
    {
        echo $row['comment'].'<br />';
        $comment_count++; // We have at least one comment
    }
    else
    {
        echo "no comment<br />";
    }
}

if ($comment_count === 0) echo 'no comments<br />';