Checkbox — добавление массива в БД
Категория1
Категория2
Категория3
Для создания поста выбираю 2 категории 1 и 2 например, нужно занести в базу данных их идентификаторы(1,2).
Как это реализовать?
1 ответов
Если количество категорий-чекбоксов ограничено и неизменно (согласно текущей логике), то лучшим решением было бы сделать на каждую категорию по одному полю в таблице постов. Проставлять 1 в поле таблицы, если соответствующий чекбокс отмечен, иначе 0. Изменение категорий - апдейт соответствующей строки таблицы постов.
Если категорий много и их состав может время от времени меняться, то лучше их вынести в отдельную таблицу с полями: ID категории, Название категории, Тип и прочие атрибуты категории (если есть). Очевидно, связь таблицы постов к таблице категорий "многие-ко-многим" (т.к. в посте можно выбрать более одной категории и разные посты могут иметь одну и ту же категорию). Тогда нужна дополнительная таблица связей постов и категорий, состоящей из двух полей: ID поста, ID категории. Тогда при добавлении/снятии галок с чекбоксов вам надо добавлять/удалять строки из таблицы связей, т.е. действие выполняется в два SQL-запроса.
Я немного по другом решил эту проблему.
Открывается файл - Заносятся данные с чекбоксов с помощью foreach - Открывается файл - Считываются значения - Запись в БД.
Как то всё по топорному. Стандартное решение:
есть таблица постов, например articles
article_id | text |
1 article_text1
2 article_text2
3 article_text3
...
и сводная таблица пост-категория
article_id|category_id
1 1
1 2
1 5
2 1
2 5
3 5
По ид статтьи делаем выборку её категорий :)