MySQL数据库搜索php问题

时间:2016-05-06 03:44:03

标签: php html mysql

我已经为我当前的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>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:0)

你的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%'");

答案 1 :(得分:0)

在进行外卡搜索时 - 如果$ qu_text为空,则查询将返回所有内容。如果搜索参数为空,则无需显示任何内容。如果$ qu_text为null或为空,则将条件放入并且甚至不执行查询。

此外,我认为您需要将$ q_fix not $ qu_text传递给查询。