Как я могу использовать массив php в поисковом запросе MySQL? - PullRequest
3 голосов
/ 18 мая 2010

Я собирался использовать решение scuttle на: http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html для обработки запросов на моем веб-сайте. Мне было интересно, как я могу взять поисковый ввод от пользователя и превратить его в один запрос.

Например, скажем, пользователь ввел «синих собак» в свой поисковый запрос ... Как я могу динамически обновить запрос, чтобы включить («синие», «собаки») в запросы на объединение и пересечение?

Ответы [ 3 ]

1 голос
/ 18 мая 2010

Методы, опубликованные здесь, верны, всего лишь одно маленькое дополнение к безопасности: не забывайте избегать вводимых пользователем данных, в противном случае вы в одном шаге от SQL-инъекций. Или избегайте запроса и используйте вместо этого подготовленные операторы: PHPРуководство Подготовленные заявления

0 голосов
/ 18 мая 2010

Вы можете сделать как:

$search_string = implode(',', $search_array);

Теперь в вашем запросе вы можете использовать предложение IN:

$query = "select * from table where field IN ('".$search_string."')";
0 голосов
/ 18 мая 2010

например, ваш пользовательский ввод - "голубые псы", затем на странице

$searchstring = "blue dogs"; // or fetch the input
$arr = explode(" ",$searchstring); //this is explode the text by every "space" character

у вас есть введенная пользователем строка в массиве $ arr, теперь используйте ее в запросе, как обычно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...