0

それらがチェックされている場合、それらの値をデータベースに挿入したいいくつかのチェックボックスがあります。

HTML:
<input type="checkbox" id="m1" name="category[]" value="1"/>
<input type="checkbox" id="m2" name="category[]" value="2"/>
<input type="checkbox" id="m3" name="category[]" value="3"/>
<input type="checkbox" id="m4" name="category[]" value="4"/>
<input type="checkbox" id="m5" name="category[]" value="5"/>

カテゴリ配列をうまく印刷でき、クリックしたチェックボックスに応じて正しい値が得られます。データベースに複数の行を挿入するためにそれらをループすることはできないようです。

データベースに挿入すると、データベースは次のようになります。

| USERID | MACHINEID | 
----------------------
|      1 |         1 |  
|      1 |         2 |   
|      1 |         3 |  

最初の 3 つのチェックボックスのみをクリックした場合。

私は次のようなことを考えていました:

$array_zone = $_POST['category'];
if(isset($_POST['category']))
{
 for($i = 0; $i < count($array_zone); $i++)
{
 mysql_query("INSERT INTO `userPlanDetail` (`user_id`, `machine_id`) VALUES ('$user_id', '  $array_zone[$i]')");
 }
} 
4

2 に答える 2

1

これを試してみてください。空白の問題があるようです

mysql_query("INSERT INTO `userPlanDetail` (`user_id`, `machine_id`) VALUES ('$user_id', '$array_zone[$i]')");

また、複数ある場合は、このように挿入する方が良いでしょう

 mysql_query("INSERT INTO `userPlanDetail` (`user_id`, `machine_id`) 
VALUES ('$user_id', '$array_zone[$i]'), ('$user_id', '$array_zone[$i++]')");

単一のステートメントとしてはるかに迅速に挿入されます

詳細はこちら

1つのクエリPHPで複数のmysql INSERTステートメント

また、テストの場合でも、mysql_* は依然として非常に悪い習慣です。

于 2013-06-11T22:52:02.960 に答える
0

machineid 列が int の場合、' $array_zone[$i]' のスペースが問題を引き起こしている可能性があります。mysql のエラーをチェックしていますか?

于 2013-06-11T21:06:00.540 に答える