Я пытаюсь вставить значения из выпадающего списка нескольких элементов в форме в столбец mysql db. Например: в раскрывающемся списке будет выбран один или несколько вариантов, а затем, когда форма будет размещена, она будет вставлять данные в один столбец в mysql db. Я зациклился на том, как вставлять данные.
Если вы хотите вставить одну строчку, то вы можете использовать implode () для генерации данных, разделенных запятыми, или вы можете сделать json_encode () и добавить в свой colum.
Скажем, вы получаете данные как
$data = array("one", "two", "tree"); // output one, two, three $insert_data = implode(",", $data); or $insert_data = json_encode($data);
То для вставки данных в один столбец. Во время извлечения вы можете делать explode () или json_decode (), чтобы получить возвращаемые данные, и можете снова использовать их в мульти-select.
Если вам нужна одна строка для каждого элемента, тогда просто пройдите через массив и добавьте их
установите тип столбца в строку, затем используйте функцию serialize ($ array), чтобы преобразовать массив в строку. Если вы хотите вернуть строку в массив, используйте unserialize ($ string)
вы можете превратить массив в одну строку с помощью http://us1.php.net/function.implode
$comma_separated = implode(",", $array);
Несколько вещей, о которых нужно подумать:
Если есть отношение от одного до многих – оно не должно быть в одном столбце, просматривать несколько таблиц и изменять структуру базы данных.
Если вы действительно хотите передать массив, вам нужно будет преобразовать его в строку с помощью встроенного в php функции implode
, затем используя встроенную функцию explode
для извлечения столбца из db
$arr = array('val1','val2'); $string = implode(',',$arr); //Do db insert //Do db retrieve $arr = explode(',',$string);