Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP表单搜索MySQL数据库_Php_Mysql_Full Text Search - Fatal编程技术网

PHP表单搜索MySQL数据库

PHP表单搜索MySQL数据库,php,mysql,full-text-search,Php,Mysql,Full Text Search,目前正在开发一个搜索表单,它运行得很好,但是它没有成功获取任何结果 这是数据库的截图 正如你所见,“龙”这个词有几个结果 现在,如果您转到search.php?name=dragon,它将显示以下结果: Results Sorry, your search: dragon returned zero results You searched for: dragon Results End of results 以下是搜索查询: $searchTerm = trim($_GET['sea

目前正在开发一个搜索表单,它运行得很好,但是它没有成功获取任何结果

这是数据库的截图

正如你所见,“龙”这个词有几个结果

现在,如果您转到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>";
}
$searchTerm=trim($\u GET['search']);
$query=“从项目中选择*名称,如“$searchTerm”按名称排序”;
$numresults=mysql\u查询($query);
$numrows=mysql\u num\u行($numresults);
如果($numrows==0){
回应“结果”;
echo“对不起,您的搜索:“.$searchTerm.”返回的结果为零

”; }

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

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

您的查询应该是

SELECT ... LIKE '%$searchTerm%';
                 ^--         ^-- wildcards
请注意,您非常容易受到SQL注入攻击。至少你应该有

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

或者更好的方法是,切换到使用PDO准备的语句。

谢谢,我本来已经准备好了通配符,但是我被告知要删除它们,因为它们最终会导致错误。另外,我已经按照您的建议添加了mysqlrealescapestring,谢谢,我几乎忘记了sql攻击:p对于这个主题,通配符修复了它,感谢它们不应该导致错误,除非您误用了它们,例如
。。。像%keyword%
没有引号,或者像
这样的外部引号。。。LIKE%'关键字“%
。最初的版本是“/$searchTerm%/”,但是我现在删除的代码的旧部分有问题,我认为查询的“LIKE”部分是通配符的原因:P