2013-12-14 4 views
0

Я хотел бы получить ввод текстового поля (задание) и сохранить его в моей базе данных с разделенным запятой списком. Это то, что я пробовал:Сохраните ввод текстового поля как список, разделенный запятой, в php

public function __saveNewJob($newJob,$jobscopeChosen) { 
    $jobId = $this->__getScopeId($jobscopeChosen); 
    $jobList = $this->__getJoblist($jobId); 

    $jobList_comma = explode(",",array_filter($joblist)); 
    $jobList_array = array_push($jobList_comma,$newJob); 
    $jobList_save = implode(",",$jobList_array); 

    $query = "UPDATE xxxx SET jobs='".$jobList_save."' WHERE id='$jobId'"; 
    $result = mysql_query($query) OR die(mysql_error()); 

$newJob это строка из моего текстового поля, которые я хотел бы сохранить. $jobscopeChosen - значение из поля выбора.

таблица в базе данных, названный jobs, должно быть, как Designer, Producer, Administration и т.д.

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

Моя база данных говорит Array в моей таблице. Я в отчаянии. Что я делаю не так? Есть идеи?

+0

$ jobList_comma - это массив. Explode возвращает массив. –

+0

echo "$ jobList_save", чтобы подтвердить, является ли это строкой или массивом, прежде чем хранить его в db. –

+0

Кажется, вы пытаетесь использовать 'explode()' в массиве - для этого требуется строка, а не массив. Я бы предложил включить отчет об ошибках, чтобы увидеть, что действительно происходит неправильно. –

ответ

0

Мне лично не нравится использовать array_push, когда PHP имеет совершенно приемлемые языковые структуры, созданные как [].

Вы должен взрываться правильный массив, так что попробуйте это:

$jobList_comma = explode(",", array_filter($joblist)); 
$jobList_comma[] = $newJob; 
$jobList_save = implode(",", $jobList_comma); 

Если это не работает для вас, $ списка заданий должны быть массивом (требуется взрывается), а не строка, вы должны выполните var_dump, чтобы проверить его тип и содержимое, затем вы можете решить, что с ним не так, и как его исправить. Если getJobList() возвращает массив из базы данных, например, вам не нужно взорвать его, но вам нужно будет отфильтровать только те данные, которые вам нужны, и взорвать их для сохранения.

Смежные вопросы