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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Поиск по базе данных

Сообщения:  [1-10]    [11-20]  [21-21] 

 
 автор: p.novikov   (18.04.2007 в 18:58)   письмо автору
 
   для: Trianon   (16.04.2007 в 17:29)
 

дефектных...

   
 
 автор: Trianon   (16.04.2007 в 17:29)   письмо автору
 
   для: p.novikov   (16.04.2007 в 16:20)
 

всего? или дефектных?

   
 
 автор: p.novikov   (16.04.2007 в 16:20)   письмо автору
 
   для: Trianon   (13.04.2007 в 11:44)
 

50-60 тысяч...

   
 
 автор: Trianon   (13.04.2007 в 11:44)   письмо автору
 
   для: p.novikov   (13.04.2007 в 11:40)
 

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

   
 
 автор: p.novikov   (13.04.2007 в 11:40)   письмо автору
 
   для: Trianon   (13.04.2007 в 11:20)
 

да, я в принципе так и дописал... Спасибо за помощь...

P.S.: а номера - это номера корейских деталей... склады нам не подчиняются... поэтому заставить писать номера так как они приходят из Кореии я не могу.

   
 
 автор: Trianon   (13.04.2007 в 11:20)   письмо автору
 
   для: p.novikov   (13.04.2007 в 11:17)
 

Ну значит тогда

if(!empty($_POST['num'])) 
    $tmp2 = " and REPLACE(REPLACE(REPLACE(num, ' ', ''), '_', ''), '-', '') "
          . "LIKE '%".$_POST['num']."%' ";

   
 
 автор: p.novikov   (13.04.2007 в 11:17)   письмо автору
 
   для: Trianon   (13.04.2007 в 10:57)
 

это где сейчас такая сточка:
if(!empty($_POST['num'])) $tmp2 = " and num LIKE '%".$_POST['num']."%' ";
???

   
 
 автор: Trianon   (13.04.2007 в 10:57)   письмо автору
 
   для: p.novikov   (13.04.2007 в 09:48)
 

>В общем дело вот как обстоит... Ко мне приходят куча разных прайсов со складов в формате Экселя. В них номера деталей и узлов, которые записаны по разному, т.е. через пробелы и дефисы. Я эти прайсы закачиваю в базу MySQL через MySQL Front.

И никак при этом не унифицируете номера?
Зря.

>Когда производится поиск по каталогу (по номерам), то не выводятся позици, которые имеют например дефисы. Например, нужно найти номер 55447-68546. Определяющими в любом номере являются первые 5 и следующие 2 знака. Поэтому в строке поиска ввожу 55447-68 и получаю результат только по позициям которые записаны имменно с дефисом, а те которые записаны в виде 5544768546 или 55447 68546 не показываются.

А номера, слева от которых не 5 цифр - могут быть?

>Понятное дело, можно в экселе выполнить замену дефисов и пробелов, но фишка еще в том, что номера могут иметь буквы латинского алфавита.

Каким это образом?


>И здесь уже есть проблема с бувой E, т.к. при такой замене некоторые номера приводятся к виду 9,26Е+06.

Кем приводятся? Или они в xls-файле такие?
Если номера у Вас не номера, а строки - то их и хранить нао всяко не как числа.


>Вот мне и нужно, чтобы поиск шел только по цифрам и буквам латинского алфавита, при этом не учитывая дефисов и пробелов.

То есть Вас устраивает весь этот бардак с номерами.
ОК.
Поменяйте строку

if(!empty($_POST['num'])) $tmp2 = " and num=".$_POST['num'];
на

if(!empty($_POST['num'])) $tmp2 = " and REPLACE(REPLACE(REPLACE(num, ' ', ''), '_', ''), '-', '')=".$_POST['num'];


>В самом экселе например, в строке поиска я забиваю 55447*68* или 0К2N1*3Е* и получаю все номера, не зависимо есть в них пробелы и дефисы или нет.

Забивать придется 5544768 0К2N13Е . ПРи поиске все пробелы, дефисы и подчеркивания будут проигнорированы.

   
 
 автор: p.novikov   (13.04.2007 в 09:48)   письмо автору
 
   для: Trianon   (10.04.2007 в 18:05)
 

В общем дело вот как обстоит... Ко мне приходят куча разных прайсов со складов в формате Экселя. В них номера деталей и узлов, которые записаны по разному, т.е. через пробелы и дефисы. Я эти прайсы закачиваю в базу MySQL через MySQL Front. Когда производится поиск по каталогу (по номерам), то не выводятся позици, которые имеют например дефисы. Например, нужно найти номер 55447-68546. Определяющими в любом номере являются первые 5 и следующие 2 знака. Поэтому в строке поиска ввожу 55447-68 и получаю результат только по позициям которые записаны имменно с дефисом, а те которые записаны в виде 5544768546 или 55447 68546 не показываются. Понятное дело, можно в экселе выполнить замену дефисов и пробелов, но фишка еще в том, что номера могут иметь буквы латинского алфавита. И здесь уже есть проблема с бувой E, т.к. при такой замене некоторые номера приводятся к виду 9,26Е+06. Вот мне и нужно, чтобы поиск шел только по цифрам и буквам латинского алфавита, при этом не учитывая дефисов и пробелов. В самом экселе например, в строке поиска я забиваю 55447*68* или 0К2N1*3Е* и получаю все номера, не зависимо есть в них пробелы и дефисы или нет.

   
 
 автор: Trianon   (10.04.2007 в 18:05)   письмо автору
 
   для: p.novikov   (10.04.2007 в 17:10)
 

Честно говоря, не понял.

   

Сообщения:  [1-10]    [11-20]  [21-21] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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