php - MySQL数据库搜索php问题

标签 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>

最佳答案

您的 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/

相关文章:

php - 将输入名称读取为数据库表中的一行

php - 显示 WooCommerce 自定义产品属性和单个产品的所有条款

php - [\S\s]* 在 PHP 的正则表达式中是什么意思?

php - 打印并提交以在同一页面的同一提交按钮中插入数据库

html - 如何使用 css 设置类似表格的 div 样式?如何填充 "column"?

php - 在依赖之前检查lastInsertId()

php - 在 Linux 中处理大量文件夹,效率的最佳结构

html - 使用CSS将两个图标彼此对齐

html - 从 XHTML1 Trans 更改为 HTML5 文档类型后,行高不起作用

mysql - mysql查询中字符串中的连字符导致奇怪的行为