Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск номеров
 
 автор: gOFREe   (05.07.2009 в 00:17)   письмо автору
 
 

Здравствуйте.
в базе записаны номер типа 0 111 222 333
или 1111-2222
или 3333 1111 A
Не пойму как сделать поиск по базе учитывая то, человек в поле может ввести числа без пробелов и может ввести номер не до конца.
Пробовал FULLTEXT но по числам он не ищет, есть еще какой вариант? или использовать регулярные выражения?

  Ответить  
 
 автор: Trianon   (05.07.2009 в 00:21)   письмо автору
 
   для: gOFREe   (05.07.2009 в 00:17)
 

нормализовывать номера как перед помещением в БД так и перед поиском в ней.
нормализовывать - приводить к единому (нормальному) виду.
Вспоминайте школу.

  Ответить  
 
 автор: gOFREe   (05.07.2009 в 00:24)   письмо автору
 
   для: Trianon   (05.07.2009 в 00:21)
 

Дык людей не поймешь как им захочется в строке поиска его вбить.

  Ответить  
 
 автор: Trianon   (05.07.2009 в 00:32)   письмо автору
 
   для: gOFREe   (05.07.2009 в 00:24)
 

Вот именно. А Вы приводите к единому виду.
Убирайте пробелы и прочие разделители, меняйте буквы на заглавные и т.п.
Нормальные формы можно сравнивать между собой.

  Ответить  
 
 автор: GeorgeIV   (05.07.2009 в 00:33)   письмо автору
 
   для: gOFREe   (05.07.2009 в 00:24)
 

Приводите к какому то стандартному виду и предлагайте для редактирования

  Ответить  
 
 автор: GeorgeIV   (05.07.2009 в 00:31)   письмо автору
 
   для: Trianon   (05.07.2009 в 00:21)
 

... убирать все не относящиеся к номеру символы - скобки, пробелы и т.п. Только цифры. Вещь вроде ясная и понятная, но в базе, куда пишу не только я. вижу черте что...
Либо приводить к стандартному для России коду 8(123)-456-7890 или +7(123)-4567890. Я пишу в базу только цифры с кодом страны и города. Остальное можно дополнить при форматированном выводе.

  Ответить  
 
 автор: gOFREe   (05.07.2009 в 00:37)   письмо автору
 
   для: GeorgeIV   (05.07.2009 в 00:31)
 

Хм... в принципе можно делать записи без пробелов, и при поиске пользователя убирать пробелы... сейчас подумаю... спасибо!

  Ответить  
 
 автор: GeorgeIV   (05.07.2009 в 00:49)   письмо автору
 
   для: gOFREe   (05.07.2009 в 00:37)
 

Судя по синхронному ответу с Trianon, вопрос с телефонными номерами - вещь достаточно распространенная и разжеваннная, стоит только немного подумать.

  Ответить  
 
 автор: gOFREe   (05.07.2009 в 14:00)   письмо автору
 
   для: GeorgeIV   (05.07.2009 в 00:49)
 

Да, только я имел ввиду не телефонные номера

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования