php 陣列的問題

2010-04-28 1:02 am
<select name="select" size="5" multiple="multiple" id="select">
<?php
do {
?>
<option value="<?php echo $row_Recordset1['adminid']?>"<?php if (!(strcmp($row_Recordset1['adminid'], $row_Recordset1['adminid']))) {echo "selected=\"selected\"";} ?>><?php echo $row_Recordset1['adminid']?></option>
<?php
} while ($row_Recordset1 = mysql_fetch_assoc($Recordset1));
$rows = mysql_num_rows($Recordset1);
if($rows > 0) {
mysql_data_seek($Recordset1, 0);
$row_Recordset1 = mysql_fetch_assoc($Recordset1);
}
?>
</select>


上面是動態清單,我想插入紀錄,但是多選時,同時選2個插入 插入的紀錄只有插入1個,沒有第2個
我該怎樣處理 才能同時插入幾個名字在同一個欄位?
更新1:

感謝你的回答,可是我加了[] 後 插入問題後,mysql里的欄位出現的的值是array ,沒有出現我選擇的兩個值,能麻煩再指教一下嗎?感恩 $_POST裡的「name」會是string array <----這句我不太明白

更新2:

我把這句加進去 可是不行 還是array$serialized_names = implode("::", $_POST["name"]); 可能我放錯位置吧..剛學 很笨..很感謝你..

回答 (1)

2010-04-28 9:27 am
✔ 最佳答案
將「<select name="select" size="5" multiple="multiple" id="select">」改成「<select name="select"[] size="5" multiple="multiple" id="select">」(i.e. 在變數名稱後加上 [] 就是了)

$_REQUEST (或$_GET, 或$_POST)裡的「name」會是string array

2010-04-28 03:45:56 補充:
$_POST["name"] 會是一個array,我們不能直接把array儲進mysql僅一個欄裡,可以有兩個方法:

1. 把array裡的values以delimiter合成一條string, e.g.

$serialized_names = implode("::", $_POST["name"]);

若果你在select box裡選了「Mr Chan」和「Mr Wong」,那麼$serialized_names將會是「Mr Chan::Mr Wong」,這樣起碼能同時這兩個選擇進mysql裡

2. 加開另一個mysql table,把多個數值分別儲進數個記錄


收錄日期: 2021-04-26 20:38:09
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20100427000051KK00863

檢視 Wayback Machine 備份