Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 试图根据选中的窗体复选框影响数据库列_Java_Mysql_Jsp_Servlets_Checkbox - Fatal编程技术网

Java 试图根据选中的窗体复选框影响数据库列

Java 试图根据选中的窗体复选框影响数据库列,java,mysql,jsp,servlets,checkbox,Java,Mysql,Jsp,Servlets,Checkbox,我有一个HTML表单的小调查,它使用AJAX提交给Javaservlet。 用户提交有关其性别、年龄、喜欢8种类型的电脑游戏中的哪一种(至少一种)以及表单提交日期和时间的信息 以下是MySql表: 这是MySQL查询: String query = "INSERT INTO vote (sex, age, genre1, genre2, genre3, genre4, genre5, genre6, genre7, genre8, date) VALUES (?,?,?,?,?,?,?,?,?

我有一个HTML表单的小调查,它使用AJAX提交给Javaservlet。 用户提交有关其性别、年龄、喜欢8种类型的电脑游戏中的哪一种(至少一种)以及表单提交日期和时间的信息

以下是MySql表:

这是MySQL查询:

String query = "INSERT INTO vote (sex, age, genre1, genre2, genre3, genre4, genre5, genre6, genre7, genre8, date) VALUES (?,?,?,?,?,?,?,?,?,?,NOW())";
以下是类型HTML输入字段:

<input type="checkbox" class="genre" name="genre" value="1"><label for="1">First Person Shooter</label><br>
 <input type="checkbox" class="genre" name="genre" value="2"><label for="2">Sports</label><br>
 <input type="checkbox" class="genre" name="genre" value="3"><label for="3">Action/Adventure</label><br>
 <input type="checkbox" class="genre" name="genre" value="4"><label for="4">Educational</label><br>
 <input type="checkbox" class="genre" name="genre" value="5"><label for="5">Puzzle</label><br>
 <input type="checkbox" class="genre" name="genre" value="6"><label for="6">Real Time Strategy</label><br>
 <input type="checkbox" class="genre" name="genre" value="7"><label for="7">Beat em up</label><br>
 <input type="checkbox" class="genre" name="genre" value="8"><label for="8">Survival Horror</label><br>

因此,在我的查询“如果选中了复选框1,则将第3列设置为1;如果选中了复选框2,则将第4列设置为1”。等等。

获取参数值
将仅返回选中的复选框值:

String[] checkboxes = request.getParameterValues("genre");
因此,for循环条件
复选框。length
将失败。因为您的查询中有10个参数,如果用户只选择了3个复选框,那么您的
复选框。长度将为3。因此,代码不会为其余参数设置值

更好的解决方案是创建
genre
表和名为
voteGenre
的关联表。然后使用组合键
voteId
genreId
。每次有人投票时,您都会将其插入voteGenre表

String[] checkboxes = request.getParameterValues("genre");