目前在搜索表单上工作并且它很好,但它没有成功获得任何结果。
这是数据库的截图
http://screensnapr.com/e/IdNs9j.png
正如您所看到的,“龙”这个词有几个结果
现在,如果你去search.php?name = dragon,它会显示出这些结果:
Results
Sorry, your search: dragon returned zero results
You searched for: dragon
Results
End of results
以下是搜索查询:
$searchTerm = trim($_GET['search']);
$query = "select * from item where name like '$searchTerm' order by name";
$numresults=mysql_query($query);
$numrows=mysql_num_rows($numresults);
if ($numrows == 0) {
echo "<h4>Results</h4>";
echo "<p>Sorry, your search: " . $searchTerm . " returned zero results</p>";
}
为什么不显示任何结果?任何帮助将不胜感激。
答案 0 :(得分:1)
你没有为like
操作指定通配符运算符。如果没有通配符,somefield LIKE 'something'
与somefield='something'
完全相同。
您的查询应该是
SELECT ... LIKE '%$searchTerm%';
^-- ^-- wildcards
并注意到您对SQL注入攻击持开放态度。至少你应该
$searchTerm = mysql_real_escape_string($_GET['search']);
或者更好的是,切换到使用PDO预处理语句。