2015-08-17 213 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