2012-01-02 72 views
0

如果第一个结果为空,我无法让我的PHP脚本回显第二个else语句。防止PHP打印空数组结果?

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

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

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

+0

尝试'的var_dump($行)'清楚地看到你的数组包含。将其与[类型比较表](http://www.php.net/manual/en/types.comparisons.php)进行匹配,以查看发生了什么。 – cmbuckley 2012-01-02 22:47:40

回答

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 />'; 
+0

你好,我试过这个,但是它仍然和以前一样回声。 为了让你更好地了解我正在尝试做什么,我附上了一张截图[链接](http://img.photobucket.com/albums/v638/lisss001/ScreenShot2012-01-02at225454.png)[/链接] IT首先通过属性,然后显示其相关的评论。我只是不能为我的生活找出为什么它不会隐藏空白条目。在附加的屏幕截图上,这些页面显示为黄色的线条(css应该包围结果)。 感谢您的帮助到目前为止... – liveman 2012-01-02 22:56:51

+0

我猜测你的问题是什么,如果这不能帮助你将需要添加完整的相关代码到您的文章。 – 2012-01-02 23:12:57

+0

那么评论打印没有问题。结果从数据库中提取,并且评论被拉出(并列出)。如果房屋的ID与评论的房屋相匹配,则使用阵列列出评论(并按顺序打印)。 – liveman 2012-01-02 23:19:03