php实时搜索阵列

时间:2015-02-11 02:30:02

标签: php arrays ajax livesearch

我正在我的网站上使用AJAX和PHP进行实时搜索。我已经尝试过使用XML而我不喜欢它。我需要搜索结果能够轻松更新,我发现使用数据库更容易实现。

所以,到目前为止我有这个代码:

<?php
// database connection
$query = "SELECT * FROM Questions";
$doQuery = mysql_query($query);

$searchArray = array();
$x = 0;
while($row=mysql_fetch_assoc($doQuery)) {
$searchArray[$x] = $row['title'];
$x++;
}

$q = $_GET['search'];

现在我有一个包含我问题表中所有标题的数组。

当用户键入每个字母时,我将如何搜索我的数组中的字符串。 (假设我有一个函数在keyup事件上使用ajax调用上面的查询)。

或者我这样做完全错了?我想使用数据库来获取我的搜索结果。这样做的最佳方式是什么?

感谢

编辑后: 我已经尝试在$query

中执行类似声明
$query = "SELECT * FROM Questions WHERE title LIKE '%" . $q . "%'";

我不喜欢它是如何工作的,因为一旦你翻过一个单词,结果就不匹配了。

1 个答案:

答案 0 :(得分:1)

不是将数据拉入数组,而是最好的解决方案是设置一个AJAX解决方案,其中AJAX端点使用通配符运行LIKE查询。常见的实现看起来像:

$query = "SELECT * FROM Questions WHERE someCol LIKE %SOME_INJECTED_VAR%";

另外,作为一个注释,您应该使用mysqli或PDO而不是mysql_ *函数,因为它们已被弃用,并且将在即将发布的PHP版本中删除。