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


Save textfield input as comma separated list in 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。我绝望了。我做错了什么?有什么想法吗?

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

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

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

如果这对你不起作用,$joblist必须是一个数组(爆炸所需的)而不是字符串,你应该对它进行var_dump检查它的类型和内容,然后你就可以找出它的问题以及如何修复它。例如,如果getJobList()从数据库返回一个数组,你就不需要爆炸它,但你只需要过滤掉你需要的数据,并将其内爆保存。