PHP搜索栏不显示数据

时间:2014-04-22 14:16:24

标签: php html database search

我在格式化代码时遇到问题,但无法找到, 这是我将搜索栏放在以下位置的表单:

<form>
        <?php include_once("searchbar.php"); ?>
    </form>

这是我的搜索条形码:

<form method= "post" action = "search.php">
        <input type="text" name="search_input" placeholder="Search Designer Sofas..." />
        <input type="submit" value="Search" />
    </form>

这是搜索结果页面的开头

    <!DOCTYPE html>
<?php
   //retrieves the specified element from the URL
   $search_input = $_POST["search_input"];

   include_once("connection_to_db.php");

   //isset function checks if a variable is set
   if(!isset($search_input))
   {
        print("Nothing to search !");
        return;
   }

    //take the books with the specific name
    $query_products = "SELECT * FROM XXX WHERE name LIKE '%".$search_input."%'";

    $query_product_result = mysql_query($query_products)
     or die(mysql_error());

    $num_rows_products = mysql_num_rows($query_product_result);

?>

<html lang="en">

<head>

现在发生的情况是,当我点击搜索按钮时,地址会在搜索查询的网址中发生变化,但页面没有,这是否意味着它发送给它但没有收到任何内容?

2 个答案:

答案 0 :(得分:1)

看起来你有嵌套的<form>元素。这就是表单的呈现方式:

<form>
<form method= "post" action = "search.php">
        <input type="text" name="search_input" placeholder="Search Designer Sofas..." />
        <input type="submit" value="Search" />
</form>
</form>

第二种形式(带动作的形式)将被忽略。删除包含<form>的{​​{1}}包装。

你也对SQL注入攻击持开放态度。考虑使用mysqli prepared statements

答案 1 :(得分:0)

输入=签署行动

<form method="post" action="search.php">
    <input type="text" name="search_input" placeholder="Search Designer Sofas..." />
    <input type="submit" value="Search" />
</form>

并尝试从

中删除表单标记
<?php include_once("searchbar.php"); ?>