2017-02-11 94 views
0

容器,并有一个变量“sresult”这是某种程度上undefined.But我不明白为什么,我认为有可能将一个变量传递给另一个DIV-集装箱。PHP/PDO“注意:未定义的变量”,但它是在相同的文件

这是我的拳头DIV-集装箱:

<div id = "header"> 
    <h1>User-Search</h1> 
    <?php if(!empty($user)): ?> 
    <?php 

    echo'<form action="search.php" method="POST"> 
    <input type="text" placeholder="User Search" name="search_user"> 
    <input type="submit"> 
    </form>'; 

    if(!empty ($_POST['search_user'])): 

    $search_user = "SELECT username FROM users WHERE username like :search_user"; 
    $edited_search_user = "%".$_POST['search_user']."%"; 
    $suser = $conn->prepare($search_user); 
    $suser->bindParam(':search_user', $edited_search_user); 
    $suser->execute(); 
    $sresult = $suser->fetchAll(); 

    ?> 
     <?php endif; ?> 
     <?php endif; ?> 
    </div> 

这是我的第二个:

<div id = "textarea"> 
    <?php 
    if(count($sresult)> 0) 
    { 
     foreach ($sresult as $srow) 
     { 
      echo'<table>'; 
      echo'<th>Username : </th>'; 
      echo'<td>'.$srow["username"].'</td'; 
      echo'</table>'; 
     }  

    } 
     else { 
      echo 'No User found !'; 
      } 

    ?> 

    </div> 

我想在一个DIV-集装箱把一切都在一起,但即使在那里也没”工作。

+0

什么未定义的变量?你认为我们可以想像其余的错误文本? –

+0

'$ sresult'如果仅在'!empty($ _POST ['search_user'])时定义' –

回答

0

可变$sresult定义只有当您提交(因为!empty ($_POST['search_user']))形式,所以你应该检查,如果做一些与它之前存在$sresult。这可以用empty()做到:

<div id = "textarea"> 
<?php 
if(!empty($sresult) > 0) 
{ 
    foreach ($sresult as $srow) 
    { 
     echo'<table>'; 
     echo'<th>Username : </th>'; 
     echo'<td>'.$srow["username"].'</td'; 
     echo'</table>'; 
    }  

} 
else { 
    echo 'No User found !'; 
}?> 
</div> 

功能count将无法​​正常工作,因为它只是检查在一个变量元素的大小/数量,如果它存在,不检查。这就是为什么 - 使用empty