PHP表单搜索MySQL数据库

时间:2011-12-30 04:32:56

标签: php mysql full-text-search

目前在搜索表单上工作并且它很好,但它没有成功获得任何结果。

这是数据库的截图

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>";
}

为什么不显示任何结果?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

你没有为like操作指定通配符运算符。如果没有通配符,somefield LIKE 'something'somefield='something'完全相同。

您的查询应该是

SELECT ... LIKE '%$searchTerm%';
                 ^--         ^-- wildcards

并注意到您对SQL注入攻击持开放态度。至少你应该

$searchTerm = mysql_real_escape_string($_GET['search']);

或者更好的是,切换到使用PDO预处理语句。