- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Имеется каталог, доступ к каждому элементу которого можно получить через путь вида:
site.ru/elements1/element-name/ (название элемента всегда из двух слов).
Имея такой УРЛ, заменяем в element-name дефис на пробел, делаем запрос к БД по этому названию и все Ок.
Теперь же появились элементы, у которых в втором слове есть дефис. В результате стандартная заменялка дефисов на пробелы работает не так, как нам нужно, и запрос к БД идет кривой.
Вопрос: что делать, как быть? Неужель придется все УРЛы менять на какие-нить там уродливые element_name вместо дефиса?
Либо урлы менять либо запрашивать в базе все возможные комбинации тире и пробелов:
"какой-то элемент"
"какой то элемент"
"какой-то-элемент"
"какой то-элемент"
Заменяем дефис на ? и ищем LIKE. Если строк больше одной - значит в базе не однозначность, меняете название элемента
Магнат, Это уж совсем мрачно...
Shtogrin, Имелось ввиду нечно вроде этого:
'WHERE Capt LIKE "'.str_replace('-', '%', $element).'"'
?
Asar, зачем '%', вам нужен один символ, поэтому '?'. Но тоже может получиться неоднозначный выбор.
Надо найти строки где вместо "-" может быть " " или "-", тогда REGEXP http://dev.mysql.com/doc/refman/5.1/en/regexp.html
типа так, но с экранированием рег.выражений надо посмотреть
'WHERE Capt REGEXP "'.str_replace('-', '[ -]', $element).'"'
Хм, так если знак вопроса, вообще ошибка же полезет. Неоднозначного же здесь не будет...
перепутал, никогда не пользовался, и все время считал что и в MySQL "?" - один символ, надо "_"
_ Matches exactly one character
% Matches any number of characters, even zero characters
С "%" может быть очень много вариантов, поэтому лучше все же "_"
А, блин. А я тормоз вообще ? туда приделал по досовской привычке. Все, дошло. Сенкс.