Я не могу найти способ "ВЗРЫВАТЬ" значения в флажки в форме редактирования
Эта строка настолько близка к ответу, что мне серьезно интересно, если этопост шутки.
Учитывая вашу структуру базы данных, как есть, вы можете использовать функцию explode()
, чтобы разбить значение в массив на основе разделителя.Например:
$values = "1,2,3,4";
$array_of_values = explode(",", $values);
После этого $array_of_values
будет содержать массив из четырех элементов со значениями 1
, 2
, 3
и 4
соответственно.
При принятии решения, отображать или нет флажок как отмеченный, вы можете использовать функцию in_array()
, чтобы сделать этот вызов:
if (in_array("2", $array_of_values)) {
echo 'checked="checked"';
}
Помимо этого, позвольте мне принять этовозможность повторить то, что @MarkB сказал в комментариях к этому вопросу: это плохая идея хранить несколько значений в одном поле базы данных.Это усложняет поиск вещей, усложняет добавление значений ... просто усложняет все, что нужно.
Лучший способ справиться с этим - иметь таблицу «многие ко многим»который хранит строки элементов и категорий, с одной строкой для каждой категории, к которой принадлежит элемент.
Другими словами, где у вас в настоящее время есть это:
Item | Category
---------------
123 | 1,2,3,4
Вместо этого у вас будеттаблица, которая выглядит так:
Item | Category
---------------
123 | 1
123 | 2
123 | 3
123 | 4