2012-01-02 13 views
0

最初の結果が空の場合、PHPスクリプトで2番目のelse文をエコーすることができません。PHP印刷のNull配列結果の防止?

私のスクリプトが現在動作している方法は、 "アドレスを(別の配列から)>リストコメント"ですが、コメントが空白であってもコメントを印刷するか何も印刷しません。 "No comment"という単語。

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

助けてください。ありがとう。

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

は試してみてください:

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

idは何か他のもの、同じロジックであれば、これはデータベースから来て、各行がidを持っている、これは常に trueになりますと仮定すると、

+0

あなたの配列が含まれている正確に何を見るために ''のvar_dump($行)を試してみてくださいその場合、このような何かを試してみてください。何が起きているのかを見るには、[型比較表](http://www.php.net/manual/en/types.comparisons.php)と照合してください。 – cmbuckley

答えて

4

適用:

if (!empty($row['id']) && !empty($row['comment'])) 
{ 
    echo $row['comment'].'<br/>'; 
} 
else 
{ 
    echo "no comment<br/>"; 
} 
0:印刷する予定の値をチェックします

EDIT:このコードが投稿に添付されたすべてのコメントをループしている場合は、コメントがない場合は出力されません。ループスルーします。

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は結果を囲むことになっています)。これはあなたのポストにあなたの完全なreleveantコードを追加する必要があります解決しない場合は、あなたの助けを おかげで、これまで... – liveman

+0

私は、あなたの問題が何であるかを推測しました。 –

+0

コメントは問題なく印刷されます。結果はデー​​タベースから取り出され、コメントは引き出され(そしてリストされる)。ハウスのIDがコメントの格納されたものと一致する場合、コメントは配列を使用してリストされ(順番に印刷されます) – liveman