Comment insérer plusieurs cases à cocher valeurs dans une seule colonne une valeur unique de la ligne dans la base de données à l'aide de jsp
Je veux stocker plusieurs cases à cocher valeurs dans la base de données à l'aide de JSP dans une seule colonne de base de données, mais seule valeur dans une seule ligne.
Mon code JSP QuickFunction.jsp:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<h2 align="center"> Quick Function</h2>
<form action="QuickServlet">
<table border="1" align="center">
<tr><td width=50 align="center">1</td>
<td>Book A voucher</td>
<td>Sales Voucher</td>
<td><input type="checkbox" name="voucher"
value="Sales Voucher" /></td>
</tr>
<tr><td></td><td></td>
<td>Purchase Voucher</td>
<td><input type="checkbox" name="voucher"
value="Purchase Voucher" /></td>
</tr>
<tr><td></td><td></td>
<td>Receipt</td>
<td><input type="checkbox" name="voucher"
value="Receipt" /></td>
</tr>
<tr><td></td><td></td>
<td>Payment </td>
<td><input type="checkbox" name="voucher"
value="Payment" /></td>
</tr>
<tr>
<td></td><td></td><td> Contra </td>
<td><input type="checkbox" name="voucher"
value="Contra" /></td>
</tr>
<tr><td></td><td></td>
<td> Journal </td>
<td><input type="checkbox" name="voucher"
value="Journal"></td>
</tr>
</table>
<input type="submit" value="Submit"/>
</form>
</body>
</html>
Ma servlet code QuickServlet (méthode doGet):
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
String voucher = "";
String a[]=request.getParameterValues("voucher");
for(int i=0;i<a.length;i++){
voucher+=a[i]+"";
}
DBConnection dbc=new DBConnection();
Connection con=dbc.getNewConnection();
Statement st = null;
ResultSet rs = null;
try
{
st = con.createStatement();
}
catch (SQLException e)
{
e.printStackTrace();
}
String updatecust = "insert into vouchers(voucher) values('"+voucher+"');";
try
{
int i=st.executeUpdate(updatecust);
if(i>0){
out.print(" saved successfully....!!");
}
else
out.print("Sorry..!! Got an exception.");
}
catch (SQLException e)
{
e.printStackTrace();
}
}
Il stocke les cases à cocher des valeurs dans une seule colonne dans la seule ligne comme ci-dessous :
mysql> select * from vouchers;
+--------------------------------------+
| voucher |
+--------------------------------------+
| Sales VoucherPurchase VoucherReceipt |
+--------------------------------------+
Mais je veux stocker une valeur dans une rangée et ainsi de suite. Comme ci-dessous(résultat Attendu):
mysql> select * from vouchers;
+------------------+
| voucher |
+------------------+
| Sales Voucher |
| Purchase Voucher |
| Receipt |
+------------------+
S'il vous plaît aider moi. Merci à l'avance!!!!
Vous devez vous connecter pour publier un commentaire.
Dans votre code, tout d'Abord votre concaténation de tous les bon de les utiliser pour la boucle, puis l'insérer.
Si vous souhaitez que chaque bon d'être inséré dans la ligne sage alors au lieu de concaténation bon de réduction pour la boucle, Vous appelez requête d'insertion dans la boucle for et insérez le coupon.
Comme ceci:
Cela fonctionnera tout simplement vérifier avec la création d'une petite table(multicheck) de deux (id,bon).
Ici est de la forme :