- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Доброй ночи, форумчане! Возможно, кто-то знает, как решить подобную задачу верно.
Есть две таблицы: cats и files
files содержит описания файлов
Нужно сформировать запрос, чтобы выбрать из files: title, descr, id, tags
А из cats — только dir
(нужно только для вывода картинки: site.com/images/'_DIR_'/image.png)
Это легко решается, но не при условии наличие LIKE
Суть в том, что вводится запрос, который может быть в поле "tags", если есть совпадение по LIKE, то выводятся уже все данные.
Проблема в том, что, если используется LIKE, то выводит лютый бред (дублируется вывод),. Если делать GROUP BY, то дублирование прекращается, но информация из поля dir для каждого из выведенных файлов становится некорректной (например, у всех одинаковое значение). Зависит от того по какому полю группировать.
Заранее благодарен за ответы!
P.S: другую структуру не рассматриваю, к сожалению.
А таблицы как связаны? Покажите describe таблиц.
если используется LIKE, то выводит лютый бред (дублируется вывод),. Если делать GROUP BY
Если Вы напишете здесь эти 2 запроса, то шансы получить верный ответ возрастут многократно.
Выборку из двух таблиц сложно назвать "сложной"))) При правильной связи му таблицами легко пишется. Покажите структуру таблиц для начала
Вот запрос
P.S: по поводу структуры, сбросил в первом же посте (обобщенные скрины без деталей). Первый скрин — cats, второй — files
Вот запрос
P.S: по поводу структуры, сбросил в первом же посте (обобщенные скрины без деталей). Первый скрин — cats, второй — files
Так попробуйте
SELECT a.id, a.title, a.category, a.date, b.dir FROM files as a left join cats as b
WHERE `tags` LIKE ('%, ".$tag.", %') OR `tags` LIKE ('%, ".$tag."') OR `tags` LIKE ('".$tag.", %')
AND a.category=b.id group by a.id ORDER BY a.date DESC LIMIT 0,10
Так попробуйте
SELECT a.id, a.title, a.category, a.date, b.dir FROM files as a left join cats as b
WHERE `tags` LIKE ('%, ".$tag.", %') OR `tags` LIKE ('%, ".$tag."') OR `tags` LIKE ('".$tag.", %')
AND a.category=b.id group by a.id ORDER BY a.date DESC LIMIT 0,10
Имеем
Ну дык выкиньте скобки и запятые из лайков - может быть и пропадёт ошибка.
SELECT a.id, a.title, a.category, a.date, b.dir FROM files as a left join cats as b
on a.category=b.id
WHERE `tags` LIKE ('%, ".$tag.", %') OR `tags` LIKE ('%, ".$tag."') OR `tags` LIKE ('".$tag.", %')
group by a.id ORDER BY a.date DESC LIMIT 0,10
Такого изврата с тегами я никогда не видел.
Делается стандартно присоединением:
Хотя обычно строка между /images/ и /тут_картинки_материала соответствует адресу материала, поэтому все необходимые слаги выбираются автоматом, а на конечных страницах материалов можно вообще встраивать в это место канонический адрес материала (без слешей по краям).
...WHERE (`tags` LIKE '%, ".$tag.", %' OR `tags` LIKE '%, ".$tag."' OR `tags` LIKE '".$tag.". %') AND a.category=b.id ORDER....