2012-12-06 54 views
0

我有一個選擇輸入,您可以在其中選擇多個選項。不幸的是,我不知道如何將選中的值插入到我的數據庫中。這是我正在嘗試使用的代碼,這給我一個無效的參數,我試圖破壞它。嘗試將數組插入數據庫...(implode()[function.implode]:傳遞的參數無效)

感謝您的幫助......

這裏是我的PHP:

$distribs = implode("|", $_POST["distributors"]); 
$distribs = mysql_real_escape_string($distribs); 


$distribs = mysql_real_escape_string($_POST['distributors']); 
$sql="UPDATE customers SET distributors = '$distribs' 
              WHERE id='$id'"; 

這是我的選擇:

echo "<select name='distributors' multiple='multiple'>"; 
+1

'$ _ POST [ 「分銷商」]'不是數組。 – alex

+0

你在'$ _POST [「分銷商」]'?? –

+0

你正在使用什麼數據類型在DB中作爲implode返回字符串? – swapnesh

回答

1

嘗試這樣

echo "<select name='distributors[]' multiple='multiple'>"; 
+0

好的,這就是我曾經的觀點,但無論出於何種原因,它並沒有提前工作。現在它工作了!去圖...我當時的其他地方一定有我的代碼錯誤。謝謝! – Alex

1

$_POST["distributors"];不是數組,implode();需要一個陣列的功能,

PHP.net Function for implode();

如果您$_POST是一個正確的陣列格式;那麼implode會將數組轉換爲單個字符串。

如果您的$ _POST包含來自<select> </select>的信息那麼提交將是一個單獨的字符串,可以插入數據庫而不需要您的implode();函數。

如果您確定您的$ _POST正在以陣列格式提交。用作 DeDav 已建議。

當你的$ _POST被填充時運行這個命令。

的print_r($ _ POST [ '經銷商'])

如果使用多選你。使用如再次DeDav建議:

echo "<select name='distributors[]' multiple='multiple'>";

+0

謝謝你的幫助! – Alex

+0

我懷疑[爆炸](http://uk1.php.net/manual/en/function.explode.php)doesnot [需要數組](http://codepad.org/WjITaLz8)。這裏**爆炸 - 通過字符串拆分字符串**沒有提及數組 –

+0

簡單的錯誤;不應該提到'爆炸();'這已經從我的帖子中刪除。 –

相關問題