Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Регулярные выражения в MySQL

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Нужна помощь с поиском в mysql.
AlexGreF
Отправлено: 27 Марта, 2009 - 10:07:49
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Март 2009  
Откуда: Амурка


Помог: 0 раз(а)




Такая проблема:
есть таблица mysql, в ней поле `city` с городами. При поиске использую такую строку:

CODE (text):
скопировать код в буфер обмена
  1. "SELECT FROM `table` WHERE `city` LIKE '%$city%'"


Возникает проблема - при поиске например города Минск, скрипт выдаёт всякие Наро-фомински и т.д...

Хочу решить эту проблему запретом на наличие букв до и после поисковой фразы,
в этом случае символы (кавычки, тире....) и пробел будут разрешены. Это нужно чтобы например при поиске со словом "Петербург" скрипт так же находил и "Санкт-петербург".

Вот только не знаю как это реализовать. Знаю что можно как-то использовать регулярные выражения в sql-запросе.

Помогите, плиз, кто знает!

(Отредактировано автором: 27 Марта, 2009 - 10:10:19)



-----
Моё место во фрилансе - http://weblancer[dot]net/users/alexsava
 
 Top
Champion Супермодератор
Отправлено: 27 Марта, 2009 - 13:50:55
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




city regexp "\W*$city\W*"
 
 Top
AlexGreF
Отправлено: 30 Марта, 2009 - 05:55:26
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Март 2009  
Откуда: Амурка


Помог: 0 раз(а)




Champion пишет:
city regexp "\W*$city\W*"

Что-то не работает. Пишу такой код:
CODE (text):
скопировать код в буфер обмена
  1. SELECT `city` FROM `table` WHERE city regexp "\W*$city\W*"

В результате выводит так же как и при city LIKE "%$city%"


-----
Моё место во фрилансе - http://weblancer[dot]net/users/alexsava
 
 Top
Champion Супермодератор
Отправлено: 30 Марта, 2009 - 08:37:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




По-моему, это странно. А так?
"[^a-zA-Z]*$city[^a-zA-Z]*"
 
 Top
AlexGreF
Отправлено: 30 Марта, 2009 - 15:24:21
Post Id



Новичок


Покинул форум
Сообщений всего: 44
Дата рег-ции: Март 2009  
Откуда: Амурка


Помог: 0 раз(а)




Champion пишет:
По-моему, это странно. А так?
"[^a-zA-Z]*$city[^a-zA-Z]*"


Ok, вот так работает :
CODE (text):
скопировать код в буфер обмена
  1. SELECT `city` FROM `cars` WHERE city regexp "[^a-zA-Zа-яА-Я]$city[^a-zA-Zа-яА-Я]*$"

(Отредактировано автором: 30 Марта, 2009 - 18:36:38)



-----
Моё место во фрилансе - http://weblancer[dot]net/users/alexsava
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB