Показать сообщение отдельно
  #2 (permalink)  
Старый 13.03.2015, 11:43
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Оператор LIKE использует символы _ и % как спецсимволы, и если таковые будут в запросе, оператор может выдать некорректный результат. И слеши используемые в выражении для поиска нужно удваивать. Поэтому данные для LIKE нужно предварительно обработать:

array('like','%'.addCslashes(trim($_GET['q']), '\%_').'%')),$n,$member_list);


В плане нагрузки на базу - так ваш код, это живой поиск, иначе бы просто SELECT по полю индексированному.

как сделать запуск функции только когда пользователь ввел последнюю букву

А какой считать последнюю, разве можно на это ответить однозначно? Можно по таймеру определять - нет определенного времени нажатий, значит запрос. Можно и через N введенных символов делать запрос, но в этом случае, если введено меньшее количество, то запроса вообще не будет.

И еще как сделать что бы при удалении символов из поля поиска до 0 скрипт не выполнялся


Это проще - длину строки проверять.
Ответить с цитированием