2011-10-31 47 views
0

以下代碼將我的搜索結果回顯到頁面上。我試圖在沒有搜索結果時回顯消息,但似乎無法顯示消息。迴應消息,如果沒有搜索結果q

什麼是我檢查是否沒有結果的最佳方式?

代碼:

<?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