2015-08-17 128 views
1

我需要一個簡單的if else檢查是否插入任何數據進行搜索。簡單如果else語句不工作

所以我設定的條件----

如果輸入數據大於1少比它會顯示用戶應該輸入一些數據進行搜索。否則會搜索結果。

但不知何故這個簡單的事情不適合我。

有誰知道如何解決這個問題。先謝謝了。

$query = $_POST['Search']; 

$min_length = 1; 

if (isset($query) && !empty($query)) { 

    if (strlen($query) > $min_length){ 
    // Check whether if there is atleast 1 character to chearch 

    // method to search ..... 
    echo($result); 
} else { 
    echo "Sorry you have to put some data to search"; 
} 

這個總是返回if語句,它永遠不會去else語句。

我也試着像這樣---

$query = $_POST['Search']; 

    $min_length = 1; 

     if (isset($query) && ! empty($query)) { 

      if(isset($query) > $min_length){ 
    // method to search ..... 
    echo($result); 
    } else { 
    echo "Sorry you have to put some data to search"; 
} 

但是這一個總是返回else語句。

任何人都可以知道如何解決這個問題。

+0

解釋'not working' - 第二個代碼塊問題很明顯('isset'返回truw或false,所以它從不大於1),但是當您嘗試第一個代碼塊 – Steve

+0

'isset($ query)&&時會發生什麼?空($查詢)&& strlen($查詢)> $ min_length' - 可以做到ne只有'!empty($ query)'。 –

+0

'query'實際上是從'$ _POST ['name']'中檢索一個值嗎?用'var_dump($ query);' – Scott

回答

4

有一些問題與檢查。首先,檢查文章是否實際上包含了場 '搜索':

$query = isset($_POST['Search']) ? $_POST['Search'] : ""; 

(編輯:改變字段名從nameSearch

然後,就檢查它的長度:

$min_length = 1; 
if (strlen($query) >= $min_length) { 
    // do search here 
    // and echo the result 
} else { 
    echo "Sorry you have to put some data to search"; 
} 
+0

非常感謝:) –

+0

不客氣! –

1

你錯過了}這裏是工作代碼爲你:

$query = $_POST['name']; 

     $min_length = 1; 

     if (isset($query)) { 
      if (strlen($query) > $min_length) { 
       // Check whether if there is atleast 1 character to chearch 
       // method to search ..... 
       echo "result"; 
      } else { 
       echo "Sorry you have to put some data to search"; 
      } 
     }else { 
      echo "name not set."; 
     } 
+0

爲什麼downvote !!! :/ –

+0

不知道,我希望這是正確的答案。雖然它可以壓縮成一個檢查'if(isset($ _ POST ['name'])&& strlen($ _ POST ['name'])> $ min_length){// query} else {// error}' – Steve

+2

with這個代碼你仍然會遇到'$ _POST ['name']'不存在時產生的undefined index:name'錯誤。在嘗試將它移動到'$ query'之前,最好在'$ _POST'數組值上做'isset'。因此downvote。其他人應該重新考慮他們的upvote。 – RiggsFolly