Как я могу показать результаты в выбранном входе, основываясь на значениях, показанных в отдельной таблице? - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть три таблицы, и я просто ищу способ сделать эту работу.

tbl_campaigns имеет столбцы "id" и "campaign". Это довольно просто, это просто названия кампаний с идентифицирующим номером, который автоматически увеличивается, поэтому они имеют уникальные идентификаторы.

tbl_users имеет столбец идентификатора, поэтому у каждого пользователя есть уникальный идентификационный номер,стандартный материал.

tbl_permissions создает новую строку всякий раз, когда создается новый пользователь. Это означает, что его столбец «id» имеет уникальные значения идентификатора, которые соответствуют идентификатору пользователя в «tbl_users». Столбцы были названы так, чтобы соответствовать значению идентификатора кампании каждый раз, когда создается новый, например, столбец «campaign_1» относится к кампании в «tbl_campaigns» с идентификатором 1. Идея состоит в том, что эти данные таблицызаполнен или 1 или 0.

Если строка с идентификатором 1 имеет номер 1 для столбца «campaign_1», то пользователь с идентификатором 1 будет утвержден для кампании с идентификатором 1 в таблице кампании. Если бы это было 0, то они не одобрены для этого. Та же логика применима к столбцам "campaign_2", "campaign_3" и т. Д.

В любом случае, у меня возникает проблема с отображением этой информации во внешнем интерфейсе, поскольку я хочу, чтобы только пользователь могпросмотреть кампании, которые они одобрены для запуска, в раскрывающемся списке. Когда пользователь вошел в систему, он сохраняет свой идентификатор пользователя в сеансе, я не уверен, есть ли способ обойти это с помощью этого метода.

Есть ли способ обойти это? Пожалуйста, обратите внимание, что я делал это в процедурном PHP, так как я все еще в ранние годы, поэтому, если у кого-то есть решение в этом направлении, это будет высоко ценитьсяИзвините, если это немного запутанно. Я знаю, что это немного тупо, но я просто хочу, чтобы это сработало первым.

Ответы [ 2 ]

0 голосов
/ 05 ноября 2019

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

  1. сохраняйте таблицы tbl_campaigns и tbl_users такими, как они есть
  2. создать таблицу tbl_permissions с 4 полями (id, user_id, campaign_id и разрешение)

Чтобы проверить, есть ли у пользователя разрешение, используйте запрос, подобный следующему:

SELECT permission FROM tbl_permissions WHERE user_id = ? AND campaign_id = ?

Таким образом, каждый раз, когда вы создаете кампанию, добавляйте соответствующую запись в таблицу tbl_permissions. Нет необходимости добавлять новый столбец.

0 голосов
/ 05 ноября 2019

Я думаю, что лучшая практика для этого заключается в следующем:
- Создать HTML для показа пользователю (если у вас его нет, дайте мне знать, чтобы я мог поработать над тем, который вы можете использовать)
- Создайте JS-архив, который будет отвечать за вызов PHP-файла, и покажите результат в своем HTML-файле (если вы не знаете, как это сделать, дайте мне знать, чтобы я мог вам помочь)
- Создайте PHP-файл, этособирается проконсультироваться с вашей базой данных и дать результат, отобранный для вашего выбора (если вы не знаете, как это сделать, дайте мне знать)

Сделать эту работу довольно легко,дайте мне знать, если вам нужна дополнительная помощь.

...