PHP живой поиск с массивом

Я делаю живой поиск с использованием 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'];

Теперь у меня есть массив со всеми заголовками из моей таблицы вопросов.

Как бы я начал искать в моем массиве строку, когда пользователь печатает каждую букву. (Предполагая, что у меня есть функция, которая вызывает вышеуказанный запрос, используя ajax на событие keyup).

Или я делаю это совершенно неправильно? Я хотел бы использовать базу данных для получения результатов поиска. Каков наилучший способ сделать это?

Спасибо

ПОСЛЕ РЕДАКТИРОВАНИЯ:
Я также уже пытался сделать подобное заявление как часть $query:

$query = "SELECT * FROM Questions WHERE title LIKE '%" . $q . "%'";

Мне не понравилось, как это работает, потому что как только вы прошли одно слово, результат не совпадал.

2

Решение

Вместо того, чтобы извлекать данные в массив, лучшим решением будет создание решения AJAX, в котором ваша конечная точка AJAX выполняет запрос LIKE с подстановочным знаком. Обычные реализации будут выглядеть примерно так:

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

Также, как примечание, вы должны рассмотреть использование mysqli или PDO вместо функций mysql_ *, поскольку они устарели и будут удалены в следующих версиях PHP.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]