2016-01-29 52 views
0

У меня есть поисковые запросы для PHP php.Разбить запрос ключевого слова на отдельные части цикла

Я хочу разбить любой запрос на отдельные символы.

например: 你好 (Ni Hao, привет) разделилась на 你 и 好

мой запрос установлен как:

$q = $_REQUEST["q"]; 

результатов я хочу разделить настроен как:

$results4 = $db->query("SELECT CHS, PIN, DEF FROM FOUR 
         WHERE CHS LIKE '%".$q."%' OR PIN LIKE '%".$q."%'"); 
while ($row4 = $results4->fetchArray()) { 

Как разбить ключевое слово и найти все компоненты?

+0

Вы хотите проверить «CHS как Ni, или контактный, как п», «CHS как хао или булавкой, как нао» и так на? Или что-то совсем другое? – RST

+1

Самый популярный комментарий к http://php.net/str_split дает функцию разделения строк Unicode http://php.net/manual/en/function.str-split.php#107658 – Terminus

+0

@RST в основном 你好 - > chs like 你 & chs like 好 – user3306356

ответ

1

Если вы хотите, чтобы все в одном запросе вы должны сгенерировать весь запрос его. Если вы искали точное совпадение, вы могли бы использовать что-то похожее на функцию in_array(), но с LIKE он не работает.

Вы, однако, можете прокручивать массив символов и составлять вместе часть WHERE.

Как это

$where = array(); 
foreach ($qtwo as $word) { 
    $where[] = "CHS LIKE '%" . $word . "%'"; 
} 

$where = implode(' OR ', $where); 

Используйте эту $where переменную в запросе

+0

получение ошибки с этим ** foreach **: недопустимый аргумент, предоставленный foreach() – user3306356

+0

, вам может потребоваться изменить' $ qtwo' на что-то еще, если ваш массив, содержащий одиночные символы, называется по-разному. Я использовал '$ qtwo', потому что вы упомянули это в комментарии к другому ответу. – RST

+0

Невозможно подготовить оператор: 1, рядом с «%» – user3306356

0

Вы можете использовать str_split, чтобы преобразовать строку в массив символов

$chars = str_split($q) 
+0

$ qtwo [0] работает, есть ли функция, такая как $ qtwo [n] для включения всех переменных в массив? – user3306356

+0

Я запускаю этот atm: '' SELECT CHS, PIN, DEF from FOUR WHERE CHS LIKE '% ". $ Qtwo [0]."%' ИЛИ ​​CHS LIKE '% ". $ Qtwo [1]."%' «но должно быть что-то, что я могу сделать, например, $ qtwo [$ x] или что-то еще – user3306356

+0

Я не согласен с тем, что вы ищете. Используя str_split, строка 你好 станет Array ([0] => 你, [1] => 好) – andyts93

Смежные вопросы