|
|
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
Прошу помощи есть строка типа Код: php 1. -по этим значениям надо осуществить поиск по одному полю в бд на совпадение. Делаю так: Код: php 1. 2. 3. 4. 5. - превожу строку в массив Код: php 1. 2. echo - вывожу запрос и получаю вот такую бяку в таблице всего 7 записей, просчитал верно кол-во запросов получилось 21, В переменную Код: php 1. не попадает value = 'і, є,ї' массива, а подставляются знаки вопросов "?" ,а в последний запрос вообще ничего не подставляется. авторselect * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%?%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%%' . Помогите что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 12:02:51 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
androidx, читайте про юникод. при работе с ним нужно использовать специальные строковые функции и флаги внутри регулярных выражений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 12:05:51 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
r uandroidx, читайте про юникод. при работе с ним нужно использовать специальные строковые функции и флаги внутри регулярных выражений. Причем тут юникод у меня в пременную совсем не то подставляется, если сделать так Код: php 1. -то все подставляется только первое значение массива "і", а остальные "є,ї" не подставляются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 12:24:05 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
androidx, нихотите, как хотите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 12:28:31 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 13:05:43 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
androidx, Заинсертите украинские буквы во временную табличку, а дальше или соединение, или IN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 13:35:42 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
Да хоть как делай, если он юникод обрабатывает функцией которая для этого не предназначена, то результата нужного не будет. К тому же кодировки case insensetive как бы намекают на свое предназначение и по возможности следует использовать их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:03:14 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
и не нужно будет никакого геммороя в виде lowercase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:03:52 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
ShSergeandroidx, Заинсертите украинские буквы во временную табличку, а дальше или соединение, или IN. Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:04:41 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
ShSergeandroidx, Заинсертите украинские буквы во временную табличку, а дальше или соединение, или IN. А что это даст? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:07:59 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
Пробовал разные вариации с юникодом не помогло такое впечатлении что проблема в переменной Код: php 1. , если просто , так сделать Код: php 1. , то все ок, только подставляет она в запрос только первый символ из массива! Может есть другое решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:09:58 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. покажите ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:10:39 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
Hett Код: sql 1. покажите Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:16:45 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
NAMES_RUS обычное текстовое поле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:20:03 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
а кодировка? короче ищите регистронезависимое сравнение для своей кодировки Код: sql 1. Смотрите какое сравнение в таблице используется, если не ci то либо задаете ci, или же, если же возможности нет, то можно использовать сравнение указав в запросе: Код: sql 1. 2. 3. хотя если вы используете юникод, то не знаю, где вы взяли там регистрозависимый collation, разве что utf8_bin. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:25:59 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
короче уберите все эти LOWER и lowercase и все должно работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:27:15 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
проблема начинается еще здесь, судя по всему Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:28:40 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:29:00 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
а что это за СУБД вообще? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:31:32 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
CУБД Oracle кодировка utf-8 везде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:33:31 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
поменял запрос код остался тот же Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. результат получил такой авторselect * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%' все отлично подставил, только мне надо чтоб он еще и эти буква проверял "і, є", а он их не проверяет :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:39:19 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
подставляет только последнюю букву из массива "ї"androidxпоменял запрос код остался тот же Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. результат получил такой авторselect * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%'select * from NOMENKLATURA where LOWER (NAMES_RUS) LIKE '%ї%' все отлично подставил, только мне надо чтоб он еще и эти буква проверял "і, є", а он их не проверяет :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:41:11 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
режим WRITE ONLY походу ладно, может кому другому пригодится ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:42:53 |
|
||
|
поиск в бд по масииву значений
|
|||
|---|---|---|---|
|
#18+
В оракл есть NLSSORT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.06.2012, 14:46:30 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=37846443&tid=1465023]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
432ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 725ms |

| 0 / 0 |
