php 用数组实时搜索

php live search with array

我正在我的网站上使用 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'];

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

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

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

谢谢

编辑后: 作为 $query:

的一部分,我也已经尝试过做类似的声明
$query = "SELECT * FROM Questions WHERE title LIKE '%" . $q . "%'";

我不喜欢它的工作方式,因为一旦你超过一个词,结果就不匹配了。

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

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

此外,请注意,您应该考虑使用 mysqli 或 PDO 而不是 mysql_* 函数,因为它们已被弃用并将在即将推出的 PHP 版本中删除。