【问题标题】:php live search with array带数组的php实时搜索
【发布时间】:2015-04-11 07:22:53
【问题描述】:

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

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

【问题讨论】:

  • 为什么会有一行写着$x == 0;?不应该是$x = 0;吗?
  • 是的。对不起。错字。我会解决的

标签: php arrays ajax livesearch


【解决方案1】:

最好的解决方案是设置一个 AJAX 解决方案,在该解决方案中,您的 AJAX 端点运行带有通配符的 LIKE 查询,而不是将数据拉入数组。常见的实现如下所示:

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

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

【讨论】:

猜你喜欢
  • 2012-06-11
  • 2023-04-11
  • 2016-05-22
  • 2013-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-20
相关资源
最近更新 更多