2015-04-06 106 views
0

我试图获得搜索功能工作。当用户在一个框中点击并搜索某些内容时,页面应该能够显示包含该单词的结果,否则会有一个简单的消息,指出找不到任何结果。目前没有任何显示(也没有错误),我不知道为什么。搜索结果不是从使用搜索按钮的sql查询返回

这是我到目前为止。任何帮助,将不胜感激。

1)在我的index.php页面上有搜索框和搜索按钮。

<li> 
    <div id = "search"> 
    <form id = "search-form" action="search_results.php" method="post"> 
    <input type="text" name= "find" placeholder= "Search..." /> 
    <input type="button" name = "search" value="search" /> 
    </form> 
</div> 
</li> 

2)当用户输入他们想要的内容时,它们被带到搜索发生的search_results.php。如果搜索成功,则应返回产品名称列表。

<div class = "main-content"> 
    <h1> Search Results </h1> 
    <?php 
    include 'dbconnect.php'; 
    $output =''; 
    if (isset($_get['find'])){ 
    $searchq = $_get['find']; 

    $query = mysqli_query($con, "SELECT * FROM products WHERE prodname LIKE '%". $searchq . "%'"); 
    $count = mysqli_num_rows($query); 
    if($count == 0){ 
    echo "There was no search results !"; 
} 
    else{ 
    while($row = mysqli_fetch_array($query)){ 
    $prodname = $row['prodname']; 
    $output ='<div> '.$prodname.'</div>'; 
    echo $output; 
} 
} 
} // end of outer if 
    mysqli_close($con); 
?> 
</div> 
+1

用Ctrl + K – 2015-04-06 12:21:26

+2

当你在方法=“邮报”请格式化代码你的表单在PHP中,你必须检查$ _POST而不是$ _get .. ps如果你直接使用客户发送的数据而不过滤它,你查询的是100%不安全的.. – Svetoslav 2015-04-06 12:26:40

+0

非常感谢您的迅速回复!并感谢Svetlio的快速现货:) – Yelims01 2015-04-06 12:31:05

回答

1

你正在做post并在search_results.php文件是错误的方法使用$_get

当你正在使用您的行动post方法,你应该得到相应的值

if (isset($_POST['find'])){ 
    $searchq = $_POST['find']; 
#Your If Condition 
} 
else 
{ 
#Your Else Part 
}