【问题标题】:Not displaying the search result不显示搜索结果
【发布时间】:2013-12-01 03:19:40
【问题描述】:
<?php    $query = $_GET['search-text'];          
$min_length = 3;         
if(strlen($query) >= $min_length){ 

    $query = htmlspecialchars($query);             
    $query = mysql_real_escape_string($query);

    $raw_results = mysql_query("SELECT * FROM movies WHERE (`title` LIKE '%".$query."%')") or die(mysql_error());               

    if(mysql_num_rows($raw_results) > 0){ 

        while($results = mysql_fetch_array($raw_results)){                 

        }

    }
    else{
        echo "No results";
    }

}
else{ 
    echo "Minimum length is ".$min_length;
}    ?>

我这里没有指定数据库连接。

我的html代码

<form id="frm-search" action="search.php" method="GET">
<div class="m-search">
<input type="hidden" id="search-text-value" name="search-text-value">
<input type="text" id="search-text" maxlength="150" class="search-text" name="search-text" placeholder="search" value="" autocomplete="off" onblur="" style="color: rgb(140, 140, 140);">
<input type="image" src="spray/search.png" value="" class="search-btn">
<div class="clear"></div>
</div>
</form>

它显示未定义的索引搜索文本和结果。当我尝试搜索时它不显示任何内容。

我已经在表单标签之后回显了它。

【问题讨论】:

  • 你在 while 循环中什么也没做。
  • 如果你使用 GET 方法,你必须在你的 url 栏上有类似 pages.com/index.html?search-text=$query 的 url。我认为问题在于从表单中获取价值。
  • 你的样本什么都不做,空循环,修复问题
  • test.loke/website3/… 这是我提交表单后得到的。

标签: php mysql search-engine


【解决方案1】:

做类似 echo $results[index];在while循环里面! 和 将 SQL 更改为:

mysql_query("SELECT * FROM movies WHERE title LIKE '$query%'");

【讨论】:

  • 好吧,如果我希望结果显示在其他地方。如果我做 echo$results['title'];在while循环中,结果显示在页面顶部,但仍显示未定义的索引“search-text”和“results”。为什么?
  • 如果你想在某个地方显示,存储在变量中,比如 $name = $results["name"];
  • 用 mysql_fetch_assoc 替换 mysql_fetch_array
  • SELECT * FROM movies WHERE title LIKE '$query%'
  • 是的,我已经完成了。结果显示正常,但是当我打开显示未定义索引错误的页面时。