1

理解できない問題があります: この複数選択を 1 つのデータベース フィールド ("," で区切られた) に入れたいのですが、最初で行き詰まっています:

<?
if(isset($_POST[submit])){
    UPDATE MyTable SET `sites` = '$_POST[sites]' WHERE `id` = '$_GET[id]'");
}?>
<select name="sites" multiple="" size="13">
<option value="1">Home</option>
<option value="2">Second</option>
<option value="3">Third</option>
<option value="4">Fourth</option>
<option value="5">Fifth</option>
</select>

問題は次のとおりです。私のデータベース フィールドには 1 つの数字しかありません。選択した最も高い数字です。例: "Home" と "Third" を選択すると、データベース フィールドに "3" が表示されます...どうすれば解決できますか? これに関するヒントはありますか?

4

2 に答える 2

2

これを変更する必要があります

<select name="sites" multiple="" size="13">

これに

<select name="sites[]" multiple="" size="13">

sites$_POST の部分配列になります:

array (size=1)
  'sites' => 
    array (size=2)
      0 => string '2' (length=1)
      1 => string '4' (length=1)

次に、それをループして、INSQLで演算子の値を使用するか、必要に応じてそれらを分割できます

于 2013-06-14T09:47:38.967 に答える