我已经为当前 php 站点的搜索数据库编写了基本脚本。即使我没有在搜索框中写入任何单词,它也会向我显示数据,并且它会显示任何关键字的许多行相同。它也不会因新搜索而刷新。请检查并让我知道我错过了什么? 谢谢
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<?php
include("config.php");
if($_SERVER["REQUEST_METHOD"] == "POST")
{
mysql_query('SET character_set_results=utf8');
mysql_query('SET names=utf8');
mysql_query('SET character_set_client=utf8');
mysql_query('SET character_set_connection=utf8');
mysql_query('SET character_set_results=utf8');
mysql_query('SET collation_connection=utf8_general_ci');
$q=$_POST['q'];
$q=mysql_escape_string($q);
$q_fix=str_replace(" ","%",$q); // Space replacing with %
$sql=mysql_query("SELECT qu_text FROM quotes WHERE qu_text LIKE N'%$qu_text%'");
}
?>
<html>
<body>
<form method="post" action="">
<input type="text" name="q" /> <input type="submit" value=" Search " />
</form>
<?php
while($row=mysql_fetch_array($sql))
{
$title=$row['qu_text'];
echo '<div>'.$title.'</div>';
}
?>
</body>
</html>
最佳答案
您的 SQL 错误。
变量$qu_text
未在任何地方初始化。
SELECT qu_text FROM quotes WHERE qu_text LIKE N'%%'
您已添加通配符,如 $q_text
。它没有获得任何值,因此,它显示所有结果。
随着查询变成:
正确查询:
$sql=mysql_query("SELECT qu_text FROM quotes WHERE qu_text LIKE '%$q%'");
关于php - MySQL数据库搜索php问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37063849/