我正在我的网站上使用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 . "%'";
我不喜欢它是如何工作的,因为一旦你翻过一个单词,结果就不匹配了。
答案 0 :(得分:1)
不是将数据拉入数组,而是最好的解决方案是设置一个AJAX解决方案,其中AJAX端点使用通配符运行LIKE查询。常见的实现看起来像:
$query = "SELECT * FROM Questions WHERE someCol LIKE %SOME_INJECTED_VAR%";
另外,作为一个注释,您应该使用mysqli或PDO而不是mysql_ *函数,因为它们已被弃用,并且将在即将发布的PHP版本中删除。