2013-12-14 45 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是一个数组。爆炸返回一个数组。 –

+0

echo“$ jobList_save”在将数据存储在数据库之前,确认它是字符串还是数组。 –

+0

看来你试图在数组上使用'explode()' - 它需要一个字符串,而不是一个数组。我建议启用错误报告来查看真正发生了什么问题。 –

回答

0

我个人不喜欢使用array_push当PHP具有完全可接受的语言结构内置像[]。

您需要破灭正确的数组,所以试试这个:

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

如果这不适合你,$作业表必须是一个数组(由爆炸所需的),而不是一个字符串,你应该做一个var_dump来检查它的类型和内容,然后你可以计算出它有什么问题以及如何解决它。例如,如果getJobList()从数据库中返回一个数组,您不需要将其分解,但是您只需要筛选出需要的数据并将其解压以保存。

相关问题