Вставка массива в столбец базы данных mysql

Я пытаюсь вставить значения из выпадающего списка в форме в столбец mysql db. Например: в раскрывающемся списке будет выбран один или несколько вариантов, после чего при публикации формы данные будут вставлены в один столбец в базе данных mysql. Я застрял на том, как вставить данные.

4 ответа

Если вы хотите вставить в одну строку, то вы можете использовать implode() для генерации данных, разделенных запятыми, или вы можете сделать json_encode() и добавить в ваш столбец.

Скажем, вы получаете данные как

$data = array("one", "two", "tree");

// output one, two, three
$insert_data = implode(",", $data);


or  

$insert_data = json_encode($data);

То для вставки данных в один столбец. При получении вы можете выполнить explode() или json_decode(), чтобы получить возвращаемые данные и снова использовать их в множественном выборе.

Если вы хотите одну строку для каждого элемента, то просто переберите массив и добавьте их

Установите тип столбца в строку, затем используйте функцию serialize($array) для преобразования массива в строку. Если вы хотите получить строку обратно в массив, используйте unserialize($string)

Вы можете превратить массив в одну строку с помощью http://us1.php.net/function.implode

$comma_separated = implode(",", $array);

Несколько вещей для размышления:

Если существует отношение один ко многим - оно не должно быть в одном столбце, изучите несколько таблиц и измените структуру базы данных.

Если вы действительно хотите передать массив, вам нужно преобразовать его в строку, используя встроенную функцию php implodeзатем с помощью встроенной функции explode извлечь столбец из БД

$arr = array('val1','val2');
$string = implode(',',$arr);

//Do db insert

//Do db retrieve

$arr = explode(',',$string);

http://php.net/function.implode

Другие вопросы по тегам