Задать вопрос
@JDMeezy

Как лучше организовать запрос к БД на основе данных?

64008e6725e59565215373.png

Есть три Select`a. Выборка происходит на основе двух таблиц. При выборе всех 3-х Select, пул выбранных данных сужается, в противном случае данных больше.

Идея в том, что-бы человек мог посмотреть как обширно данные, так и что-то конкретное, выбрав определённые параметры.

Вопрос ! Как лучше это организовать ? При выборе дополнительного параметра дописывать данное условие в запрос, и выполнять его. Или же в зависимости от выбранных данных выполнять конкретный запрос.

Сам не особо дружу с php. Делаю запросы при помощи PDO. Хотел при использование select дополнять запросы новыми условиями, и выполнять его. Но не совсем понимаю как это сделать, ведь при использовании placeholder, как указывать только те параметры, которые добавлены в сам текст запроса ?
  • Вопрос задан
  • 97 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 4
@humoured
Вы всё на свете найдёте в коробке с карандашами
А имеет ли смысл обращаться к базе при каждом изменении выбора?

Можно, например, выгрузить весь список допустимых значений и подставлять их используя JS.
Допускаю, что возможных комбинаций значений (строк в таблице) не так уж и много. И наверняка нет причин получать актуальный список именно в момент совершения выбора, так как данные едва ли меняются часто.

Очевидным бонусом такого подхода будет отсутствие задержек интерфейса, необходимых для подгрузки конкретной выборки.
Ответ написан
Комментировать
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
ведь при использовании placeholder, как указывать только те параметры, которые добавлены в сам текст запроса ?
Гуглите построитель запросов PHP. Или используйте готовые фреймворки, куда они уже встроены.
Ответ написан
Комментировать
@rPman
Да это хорошая практика с точки зрения юзабилити, когда выбрав один из параметров система фильтрует варианты выбора в дальнейшем на основании уже сделанного выбора

Необходимо всеми способами избегать того что пользователь выбирает что то из списка размером больше 10 элементов (в редких случаях несколько десятков но никогда сотни и выше) и давать больше возможностей по предварительной фильтрации (например по первой букве) и даже предлагать варианты, например на основе предыдущих запросов
Ответ написан
Комментировать
@pantsarny
Если данных немного, забирайте сразу все на фронт
А там уже делайте cascading select fields
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы