【发布时间】:2016-02-06 01:34:20
【问题描述】:
我使用 php 和 jquery 创建了一个即时搜索 MYSQL 数据库。搜索正常运行,直到我删除一些关键字搜索词并重新开始搜索。一旦用户删除了搜索词,搜索结果将不再按预期返回。一旦发生这种情况,如果我刷新页面,我会收到来自浏览器的“未收到数据”消息,并且该站点一分钟左右不会再次上线。为了了解我的意思,您可以访问 www.partsearch.club .. 一些可以使用的关键字是“decora connector wet bx tek tk”。如果您继续添加和删除搜索词,您将明白我的意思。这是我的代码
index.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Instant Search Tutorial</title>
</head>
<body>
<script type="text/javascript" src="js/jquery.js"></script>
<br />
<br />
<br />
<br />
<br />
<br />
<center><input type="text" id="search" placeholder="Search..." size="50"><br />
</br>
<form><input type=button value="Refresh" onClick="history.go()"></form> </center><br />
<div id="searchresults"></div>
<script type="text/javascript" src="js/search.js"></script>
</body>
</html>
搜索.php
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Instant Search Tutorial</title>
</head>
<body>
<?php
$username = "xxxx";
$password = "xxxxx";
$hostname = "localhost";
mysql_connect($hostname, $username, $password);
mysql_select_db("wesco");
$searchArray = explode(" ", $_POST['searchterm']);
$query = "";
foreach($searchArray as $val) {
$search = mysql_real_escape_string(trim($val));
if (!empty($query)) {
$query = $query . " AND "; // or AND, depends on what you want
}
$query = $query . "`keywords` LIKE '%$search%'";
}
if (!empty($query)) {
$find_parts = mysql_query("SELECT * FROM `parts` WHERE $query");
}
while($row = mysql_fetch_assoc($find_parts))
{
$name = $row['name'];
echo "<center>$name</center><br />";
}
?>
</body>
</html>
搜索.js
$('#search').keyup(function()
{
var searchterm = $('#search').val();
if(searchterm!='')
{
$.post('search.php',{searchterm:searchterm},
function(data)
{
$('#searchresults').html(data);
});
}
else
{
$('#searchresults').html('');
}
});
【问题讨论】:
-
尝试在脚本顶部添加
ini_set('display_errors',1); ini_set('display_startup_errors',1); error_reporting(-1);,是否报告了任何错误?