2011-10-31 15 views
0

次のコードは、検索結果をページにエコーします。検索結果がないのにメッセージを表示しようとしていますが、メッセージを表示できないようです。検索結果がない場合は、メッセージをエコーし​​ます。

結果がないかどうかを確認するにはどうすればよいですか?

コード:

<?php if(isset($search_results)) {foreach($search_results as $result): ?> 

<?php if(empty($search_results)) {echo 'No results';} 
    else { 
    echo '<div class="search_result"> <b>'.$result['title'].'</b><br />'; 
    echo '<span class="search_result_url">'.$result['link'].'</span><br />'; 
    echo $result['text'].'<br /></div>'; 
    } ?> 

    <?php endforeach; } else {echo '<b>Please type what you are looking for into the search bar and press \'enter\'</b>';}?> 

答えて

2

あなたは$ search_results配列は、foreachループ

<?php 
if(isset($search_results)) { 
    if(empty($search_results)) { 
     echo 'No results'; 
    } else { 
     foreach($search_results as $result) { 
      echo '<div class="search_result"> <b>'.$result['title'].'</b><br />'; 
      echo '<span class="search_result_url">'.$result['link'].'</span><br />'; 
      echo $result['text'].'<br /></div>'; 
     } 
    } 
} else { 
    echo '<b>Please type what you are looking for into the search bar and press \'enter\'</b>'; 
} 
?> 
0

foreachループは、すぐに$ search_resultsは、このように(空($ search_results))場合には、空でないとしてキャストされているので、あなたのスクリプトはおそらく、動作しないことができる{「結果なし」をエコーし​​ません。 }は決して真実ではありません。

(空($結果は)){ '結果なし' エコー;}場合試みる

場合、または(!$が生じない= '$空'){エコー '結果はありません';}($に応じて、空どのような '空の' 手段)

+0

[ '()'空](http://php.net/manual/en前に空であるかどうかを確認する必要があります/function.empty.php)は標準のPHP関数です。 – Farray

+0

はい、ポスターはどの意味で結果が「空」であるかを指定していませんでした。 「

」のようなhtmlタグも含めることができます。そのような状況では、empty()はFALSEを返します。しかし私は私が答えをもっと明確にすべきだと思う。 – alex

関連する問題