在php中将文本字段输入保存为逗号分隔列表

时间:2013-12-14 19:16:02

标签: php arrays database explode implode

我想采用文本字段输入(作业)并将其存储在我的数据库中,并使用逗号分隔列表。这就是我尝试过的:

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。我很绝望。我究竟做错了什么?有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我个人不喜欢使用array_push,因为PHP具有完全可以接受的语言结构,如[]。

你需要内爆正确的数组,所以试试这个:

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

如果这对你不起作用,$ joblist必须是一个数组(爆炸需要)而不是字符串,你应该在它上面做一个var_dump来检查它的类型和内容,然后你就可以搞清楚这是错误的以及如何解决它。例如,如果getJobList()从数据库返回一个数组,则不需要对其进行分解,但是您需要仅过滤掉所需的数据并将其内容保存起来。