フォーム送信アクションでファイルsales_process.phpに渡す複数の配列があります。配列の名前は次のようになります:boards1 = {a、b、c}、boards2 = {b、c、d}、boards3 = {a、c、d}。。など(値はa、b、c、dではありません)。私はこれらを私のフォームの複数の「複数の選択ボックス」に通しています。ここで、a、b、c、dは私の複数の選択オプションです。
for ($count=1;$count<10;$count++)
echo "<td>"."<select name='boards".$count."[]' multiple='multiple'>".showOptionsDrop($boards,$arr)."</select></td>";
次に、それらをファイルsales_process.phpに渡すときに、implode関数を使用してこれらの配列を文字列に変換し、「schools」テーブルに格納できるようにします。sales_process.phpファイルで、私はこれを行っています:
for ($i=0;$i<$count;$i++) {
$board = implode(',',${'boards'.$i});
$query = "UPDATE schools SET board = '$board' where schoolcode = (some_no)";
$result = mysql_query($query) or die("Error in updating table :".mysql_error());
}
したがって、このようにして、ループが実行されるたびに、boardsXの値が文字列に変換され、テーブルに格納されます。ここで、Xは1,2,3...などです。
問題は、implode関数が機能せず、エラーが発生することです。
Warning: implode() [function.implode]: Invalid arguments passed in C:\xampp\htdocs\relationshipReport\sales_process.php on line 18
さて、変数${'boards'.$i}
が配列ではないと言うなら、私はこれをして、それが私に配列だけを与えることを知りました:
$i=1;
var_dump(${'boards'.$i});
print_r(${'boards'.$i});
これは次のように出力を与えます:
array(3) { [0]=> string(4) "CBSE" [1]=> string(4) "ICSE" [2]=> string(5) "IGCSE" }
Array ( [0] => CBSE [1] => ICSE [2] => IGCSE )
私の質問が明確であることを願っています。implode関数で何がうまくいかないかを見つけるのを手伝ってください。質問がわからない場合は、そのことを伝えてください。