- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
spilden01, добавьте атрибут alt для удобства, чтобы не парсить текст.
spilden01, добавьте атрибут alt для удобства, чтобы не парсить текст.
Разделять слова подошло &&, спасибо! В вашем примере стоит onclick, можно ли как то сделать, чтобы если галки нет, то фильтр не применяется.
---------- Добавлено 19.08.2015 в 14:03 ----------
Оба кода, работают, но, если выбрать например сначала драма а потом комедия, то ничего не отображается. Если наоборот то отображается как надо.
Не так все делается. Инпуты надо положить в форму, инпуты надо отрендерить по данным с бд, и тогда само все срастется органично.
Нафига городить весь этот огород-хардкод, если и так все данные имеются и надо только их прогнать через мозг юзера.
---------- Добавлено 19.08.2015 в 16:49 ----------
Разделять слова подошло &&, спасибо!
У вас денормализованная бд? Тогда объяснимо.
с бд то зачем? без нее ведь можно
А где у него жанры хранятся? В файлах? Ну какая разница, все то же самое.
А где у него жанры хранятся? В файлах? Ну какая разница, все то же самое.
Никаких файлов, обычный текст в доп. поле.
Этот диагноз и был поставлен выше - у вас денормализованная бд. В теории вы не имеете права делать вот так && genre = "комедия", потому что текст в поле genre может быть любой, например комедия, коммедия, комедтя, камедия, comedy и тп.
Ну хорошо, а откуда вы берете список жанров, чтобы нарисовать все эти инпуты?
Этот диагноз и был поставлен выше - у вас денормализованная бд. В теории вы не имеете права делать вот так && genre = "комедия", потому что текст в поле genre может быть любой, например комедия, коммедия, комедтя, камедия, comedy и тп.
Ну хорошо, а откуда вы берете список жанров, чтобы нарисовать все эти инпуты?
есть доп поле, в нем написано: приключения, фэнтези, комедия
Текст в поле вписывается юзером при добавлении новости
Если перейти по адресу site.ru/xfsearch/приключения/ то можно увидеть новость с этим текстом.
Если перейти по адресу site.ru/xfsearch/приключения&фэнтези или site.ru/xfsearch/приключения&&фэнтези то будет почему то только одна новость, или новости с данным текстом, то есть, этот запрос применяется как будто только для одной новости.
Для сокращения итераций вкратце покажу как люди делают.
Надо завести таблицу например
table list_genre
id int
name varchar
text varchar null
а поле genre в продуктовой странице поменять на int
и добавить в запрос соединение кортежей
inner join list_genre as g on g.id = m.gid (или там genre_id)
чтобы получать название жанра из списка. Этот список затем станет основой для интерфейса выбора жанров. Его очень легко отрендерить, и по нему очень просто проверить какие жанры профтыкал юзер. С формой придут лишь те галки, которые отчекрыжены. Записав полученные данные в список вы увидите какие жанры выбрал юзер. Однако делать этого недо, вы просто запрашиваете из бд все выбранные жанры по полученным данным, потому что неполученные тут не нужны.
Например с формой придет массив $_POST['genre'], который надо проверить на вредность и превратить в строку для запроса.
select blah-blah-blah from movie as m blah-blah-blah where m.gid IN ('.join(',',$_POST['genre']).')
И все.
---------- Добавлено 19.08.2015 в 17:54 ----------
Зачем там text varchar null? Например чтобы приятно так вывести где-нибудь описание жанра. Может кто не знает что такое артхзауз. Еще можно туда image поле завести, с типичной иллюстрацией, и еще полезные для сводки поля.
Отсюда открывается возможность соорудить отдельную страницу посвященную жанрам и направлениям. Форматировать ее как статью и вот вам практически на халяву прибавка в индексе. Кроме того можно завести подсветку. Например в обзоре заменить [артхауз] на запрос инфы по жанру.
Ну то есть когда у вас есть данные, это хорошо и можно ими пользоваться или не пользоваться. А когда у вас нет данных, то можно только не пользоваться.
---------- Добавлено 19.08.2015 в 18:02 ----------
Текст в поле вписывается юзером при добавлении новости
Что и требовалось доказать. Юзер опечатался - у вас появился новый жанр.
---------- Добавлено 19.08.2015 в 18:04 ----------
о будет почему то только одна новость
Потому что вместо AND надо писать OR, или вместо && писать ||, или попросту юзать IN()
---------- Добавлено 19.08.2015 в 18:06 ----------
приключения&&фэнтези
Само собой формат урла никакого отношения к SQL запросу не имеет. Можете через черточку если черточек нет в названиях жанров, или через индекс жанров в той самой таблице.
Довольно таки круто, но этого я не осилю(
Мне сгодится обычный js фильтр, из примеров выше, нужно бы только исправить тот нюанс((