2013-12-14 86 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()從數據庫中返回一個數組,您不需要將其分解,但是您只需要篩選出需要的數據並將其解壓以保存。

相關問題