Здраствуйте. Проблема вот в чем: Есть в базе данных запись типа МВ/НВ. Есть форма которая методом POST передает данную запись,а последующий код проверяет есть ли в БД строчка с этой записью. В следствии проверка проваливаеться потому что я получаю вместо МВ/НВ только НВ. Пробую preg_match("/([a-zA-Zа-яА-ЯіІ]*)([\-0]*)([\-0-9]+)+/u ", "$_POST[start]", $start); но получаю все то же. Кстати код preg_match("/([a-zA-Zа-яА-ЯіІ]*)([\-0]*)([\-0-9]+)+/u ", "$_POST[start]", $start); я использую для других целей и не могу понять что нужно в него добавить чтоб заработало.
Статистическая строка. Это код продукта. Он может быть разным (АЕ,АИ,МВ-АО и т.д.) хочеться найти универсальное решение которое будет разбивать строку на части. Сама строка полностю выглядит так серияномер (МВ/НВ1 или АЕ1 или АО1 и т.д.). Вот собственно буквы это серия продукта а цифра это номер продукта. Мне нужно отделять серию от номера.
"проверка проваливается" — в русском языке пишется без мягкого знака! см. здесь. скажи пожалуйста, ты чтоли все записи из БД читаешь в PHP-скрипт чтобы их регуляркой проверить? это АД! чем тебя не устраивает … WHERE `x` LIKE 'МВ/%' ?!!
Ну простите пожалуйста, у меня другой родной язик. Я делаю по Вашему принципу. И даже если я делаю так то всеровно WHERE 'x' LIKE 'МВ/НВ' не пропускает, получаеться лишь НВ, а первое пропадает. Суть в чем. В форме проходит поиск диапазона номеров продукта (МВ/НВ1,МВ/НВ2 и т.д.) с помощью autocomplete.Тоесть я указую первый и последний номер и после чего система автоматом заполняет диапазон номеров. После чего я выбираю агента которому передается продукт. И после нажатия кнопки передачи, включаеться код который проводит поиск в базе каждого номера (МВ/НВ1 и т.д.) на присутствие номера в базе и если он есть то происходит UPDATE данной строки. Тут начинается дурдом потомучто косая черта экарнирует часть строки и система не может найти в базе данный номер продукта. Да и возможно preg_match который я представил не есть универсальным для вышеописаной задачи. Вот и прошу помощи Добавлено спустя 28 минут: Один добрый человек подсказал вывод не через регулярку а через var_dump($_POST[start]); . Что кто думает?
я это понял, поэтому и подсказал. незачем извиняться, надеюсь я тебе помог хотябы в этом. пожалуйста не вали в кучу всё подряд. не надо ничего про автокомплит и прочие визуальные элементы. давай ограничимся поиском уже отправленного через форму значения, ок? слеш "/" ничего не экранирует. обратный слеш "\" экранирует, да и то это имеет значение когда ты пишешь строковый литерал в коде, а не когда это значение прилетело от пользователя!!! еще раз спрошу: почему ты не используешь LIKE для поиска подстроки в базе?!! считывать все строки для проверки в PHP это очень-очень-очень плохой стиль. за такое увольняют. я тебя уверяю: LIKE 'МВ%' найдет строки, начинающиеся на 'МВ', а LIKE 'МВ/%' найдет строки, начинающиеся на 'МВ/,. а LIKE '%МВ%' найдет все строки в которых МВ стоит где угодно в поле. Добавлено спустя 3 минуты 8 секунд: видимо ты не понял доброго человека. тебя попросили это сделать это чтобы точно знать что в переменной, а не догадываться Добавлено спустя 1 минуту 42 секунды: P.S. кстати здесь ошибка. надо писать $_POST['start'] — брать строку в кавычки!