Foros del Web » Programación para mayores de 30 ;) » Java »

insertar varios registros de un solo click en mysql

Estas en el tema de insertar varios registros de un solo click en mysql en el foro de Java en Foros del Web. hola chavos del foro me presento, soy nuevo, mi nombre es michel, de monterrey, méxico, estoy desarrollando un pequeño formulario para unas pruebas que tengo ...
  #1 (permalink)  
Antiguo 04/05/2010, 19:37
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
insertar varios registros de un solo click en mysql

hola chavos del foro
me presento, soy nuevo, mi nombre es michel, de monterrey, méxico,

estoy desarrollando un pequeño formulario para unas pruebas que tengo que hacer, haciendolo en .jsp y utilizando mysql, ya me graba datos, pero quiero hacer algo especificamente así.

tengo una tabla, que se llama "movimientos_polizas" con las columnas, concepto, cargo, abono, num_diario, num_poliza

y un formulario donde aparecen así:

|concepto|cargo|abono|num_diario|num_poliza|
[_______][____][____][________][_________]
[_______][____][____][________][_________]
[_______][____][____][________][_________]
[_______][____][____][________][_________]
[_______][____][____][________][_________]
[_______][____][____][________][_________]
[enviar]

es decir, en mi formulario quiero capturar 6 filas y con sus datos correspondientes, pero de un solo jalon, y colocarlos en mi tabla que se llama
"movimientos_polizas", de tal manera que cuando revise mi tabla física me aparezcan esos datos que se introdujeron, he intentado algo así, pero nomás no!
no se si alguien me puede ayudar.


String query2 = "insert into movimientos_polizas( concepto , cargo , abono , num_diario , num_poliza ) " +
"values(\"" + concepto + "\"," + cargo + "," + abono + "," + num_diario + "," + num_poliza + ");",
"values(\"" + concepto + "\"," + cargo + "," + abono + "," + num_diario + "," + num_poliza + ");",
"values(\"" + concepto + "\"," + cargo + "," + abono + "," + num_diario + "," + num_poliza + ");",
"values(\"" + concepto + "\"," + cargo + "," + abono + "," + num_diario + "," + num_poliza + ");",
"values(\"" + concepto + "\"," + cargo + "," + abono + "," + num_diario + "," + num_poliza + ");",
"values(\"" + concepto + "\"," + cargo + "," + abono + "," + num_diario + "," + num_poliza + ");";

de antemano, muchas graciasss
!

Última edición por josh_michel; 04/05/2010 a las 19:39 Razón: mala referenciaa en dibujo!
  #2 (permalink)  
Antiguo 05/05/2010, 00:25
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola josh_michel. Bienvenido al foro.

Muevo tu tema al foro de Java desde Web general.

Saludos,
  #3 (permalink)  
Antiguo 05/05/2010, 05:51
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: insertar varios registros de un solo click en mysql

Estaría bien que en vez de "pero nomás no!" pusieras si te está dando un error, qué error, si no da error pero no inserta nada, o inserta todo igual, o solo inserta la primera, etc.

Mirando un poco el código veo dos cosas que no tienen buena pinta.
- El separador entre values debe ser coma y no punto y coma.
- Estas insertando muchas veces lo mismo, todas las variables son iguales en cada values.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 05/05/2010, 07:28
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: insertar varios registros de un solo click en mysql

Cita:
Iniciado por chuidiang Ver Mensaje
Estaría bien que en vez de "pero nomás no!" pusieras si te está dando un error, qué error, si no da error pero no inserta nada, o inserta todo igual, o solo inserta la primera, etc.

Mirando un poco el código veo dos cosas que no tienen buena pinta.
- El separador entre values debe ser coma y no punto y coma.
- Estas insertando muchas veces lo mismo, todas las variables son iguales en cada values.

Se bueno.
muchas graciass, sii tienes razón, bueno, miraa este query si me funciona


String query2 = "insert into movimientos_polizas( concepto , cargo , abono , num_diario , num_poliza ) " +
"values(\"" + concepto + "\"," + cargo + "," + abono + "," + num_diario + "," + num_poliza + ");";

pero solo me introduce en la primera fila de datos, es obvio, pero cuando aplico las demás, me marca error, es decir, lleno las 6 filas de los datos que me piden:

|concepto|cargo|abono|num_diario|num_poliza|
[_______][____][____][________][_________]
[_______][____][____][________][_________]
[_______][____][____][________][_________]
[_______][____][____][________][_________]
[_______][____][____][________][_________]
[_______][____][____][________][_________]
[enviar]

le doy enviar, y me marca

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx ception: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'values("111 Inversiones Temporales",1290,0,1234,132);values("111 Inversiones Tem' at line 1


En fin, es cierto que tengo las mismas variables, es algo que tal vez este haciendo mal, jejej lo unico que quiero es que cuando llene mi formulario le de enviar y me guarde todos esos datos en una misma tabla, que se llama "movimientos_polizas" o tal vez eso no se puede hacer,! soy novato en esto de mysql, disculpen mi ignorancia!

feliz día!
  #5 (permalink)  
Antiguo 05/05/2010, 11:11
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 6 meses
Puntos: 454
Respuesta: insertar varios registros de un solo click en mysql

Como te he comentado antes, el separador entre los values debe ser una coma y has puesto un punto y coma.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #6 (permalink)  
Antiguo 05/05/2010, 12:18
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: insertar varios registros de un solo click en mysql

Cita:
Iniciado por chuidiang Ver Mensaje
Como te he comentado antes, el separador entre los values debe ser una coma y has puesto un punto y coma.

Se bueno.
Bien, pss he corregido el codigo,

String query2 = "INSERT INTO movimientos_polizas( concepto , cargo , abono , num_poliza , num_diario) VALUES" +
"(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ")," +
"(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ")," +
"(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ")," +
"(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ")," +
"(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ")," +
"(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ");";

pero ahora lo que hace es, que en mi formulario, inserto en las 6 filas distintos valores, (obviamente del mismo tipo de datos) pero al revisar la tabla, veo que captura las 6 filas, pero repetidos, tomando los valores que se insertaron en la primera fila!

feliz día!
  #7 (permalink)  
Antiguo 05/05/2010, 12:19
 
Fecha de Ingreso: marzo-2010
Mensajes: 62
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: insertar varios registros de un solo click en mysql

Hola josh_michel forzozamente tienes que meterlos en una misma linea??
supongo que tu formulario son puros textfield y recuperas algo asi los valores

String mivalor=request.getParameter("concepto");

por que no metes todo en un for?? donde primero recoges los valores de la primera fila y los insertas y que eso lo haga 6 veces??

algo asi

for(int i=0; i<6; i++)
{
String campo_concepto="concepto"+i;
String campo_cargo="cargo"+i;
concepto=request.getParameter(campo_concepto); // aqui mi idea que tus textfield se llamen nombre mas un numero name="concepto0"
concepto=request.getParameter(campo_cargo);

// y asi recuperas todos y luego los insertas con la linea que tienes arriba

String query2 = "INSERT INTO movimientos_polizas( concepto , cargo , abono , num_poliza , num_diario) VALUES" + "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ");";

// y esto se repite 6 veces y como i crece la siguiente vez recuperaria los valores de la siguiente fila

}

Última edición por cosme1; 05/05/2010 a las 12:29
  #8 (permalink)  
Antiguo 05/05/2010, 12:30
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: insertar varios registros de un solo click en mysql

Cita:
Iniciado por cosme1 Ver Mensaje
Hola josh_michel forzozamente tienes que meterlos en una misma linea??
supongo que tu formulario son puros textfield y recuperas algo asi los valores
String mivalor=request.getParameter("concepto");
por que no metes todo en un for?? donde primero recoges los valores de la primera fila y los insertas y que eso lo haga 6 veces??

algo asi

for(int i=0; i<6; i++)
{
mivalor=request.getParameter(i); // aqui mi idea que tus textfield sean llamados por numeros
}
holaaa mi estimadoo cosmee1, exacto, tengo textfield, en 6 filas, ya habia pensado hacerlo en un for, pero no me sale y no me sale, ahora lo intentarée y te diré que ondaa!

te dejoo parte del codigo:

Código SQL:
Ver original
  1. //cargando los campos a grabar
  2.  
  3.                 // excepto clave porque en mysql es de tipo auto-INCREMENT
  4.                 //consulta uno
  5.                 INTEGER num_poliza = INTEGER.parseInt(request.getParameter("NUM_POLIZA"));
  6.                 INTEGER num_diario = INTEGER.parseInt(request.getParameter("NUM_DIARIO"));
  7.  
  8.                 //consulta dos
  9.  
  10.                 String concepto = request.getParameter("CONCEPTO");
  11.                 INTEGER cargo = INTEGER.parseInt(request.getParameter("CARGO"));
  12.                 INTEGER abono = INTEGER.parseInt(request.getParameter("ABONO"));
  13.  
  14.                 String concepto2 = request.getParameter("CONCEPTO");
  15.                 INTEGER cargo2 = INTEGER.parseInt(request.getParameter("CARGO"));
  16.                 INTEGER abono2 = INTEGER.parseInt(request.getParameter("ABONO"));
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.                 // INSERT INTO tabla(columnas) VALUES(valores);
  24.  
  25.                 String q = "insert into polizas( num_poliza , num_diario ) " +
  26.                         "values(" + num_poliza + "," + num_diario + ");";
  27.  
  28.     String query2 = "INSERT INTO movimientos_polizas( concepto , cargo , abono , num_poliza , num_diario) VALUES" +
  29.             "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ")," +
  30.             "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ")," +
  31.             "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ")," +
  32.             "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ")," +
  33.             "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ")," +
  34.             "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ");";
  35.  
  36. //    String query2 = "insert into movimientos_polizas( concepto , cargo , abono , num_poliza , num_diario) values " +
  37.   //                      "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + "),", +
  38.     //                    "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ");";
  39.                 try {
  40.  
  41.                     // agregando renglon (INSERT)
  42.  
  43.                     INT n = instruccion.executeUpdate(q);
  44.                     INT n2 = instruccion.executeUpdate(query2);
  45.                    
  46.  
  47.  
  48.                     //avisando que se hizo la instruccion
  49.  
  50.                     OUT.println("REGISTRO INSERTADO TOTAL");
  51.  
  52.                 } catch (SQLException e) {
  53.                     OUT.println(e);
  54.                 }
  55.                 ;
  56.  
  57.                 try {
  58.  
  59.                     // tabla.close();
  60.  
  61.                     instruccion.close();
  62.  
  63.                     canal.close();
  64.  
  65.                 } catch (SQLException e) {
  66.                     OUT.println(e);
  67.                 }
  68.                 ;
  #9 (permalink)  
Antiguo 05/05/2010, 12:58
 
Fecha de Ingreso: marzo-2010
Mensajes: 62
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: insertar varios registros de un solo click en mysql

Ok aunque tal vez tambien podria quedar como lo estas haciendo segun yo tu problema es que estas insertando una y otra vez la misma variable por eso se te repite, necesitarias crear variables diferentes para guardar cada fila y cada campo, aunque eso seria crear variables a lo tonto, te sugiero lo intentes con el for y nos dices.

Por cierto checa que edite mi primera respuesta es que por error la mande antes de terminarla. jaja

Saluditos.
  #10 (permalink)  
Antiguo 05/05/2010, 13:44
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: insertar varios registros de un solo click en mysql

Cita:
Iniciado por cosme1 Ver Mensaje
Ok aunque tal vez tambien podria quedar como lo estas haciendo segun yo tu problema es que estas insertando una y otra vez la misma variable por eso se te repite, necesitarias crear variables diferentes para guardar cada fila y cada campo, aunque eso seria crear variables a lo tonto, te sugiero lo intentes con el for y nos dices.

Por cierto checa que edite mi primera respuesta es que por error la mande antes de terminarla. jaja

Saluditos.
jajja graciass, pss estoy en eso! no see si realmente estoy bien, te dejo este .jsp completo, no me salee! ya estoy cansado de estar acomodandoo! ejejje espero que me puedas ayudar

feliz día!

Esto es lo que estoy haciendo, pero no me queda, mis campos de textfield, por ejemplo, quedaron así:

<td>CARGO $:
<INPUT TYPE=TEXT VALUE="0" NAME=CARGO1><BR><BR>
<INPUT TYPE=TEXT VALUE="0" NAME=CARGO2><BR><BR>
<INPUT TYPE=TEXT VALUE="0" NAME=CARGO3><BR><BR>
<INPUT TYPE=TEXT VALUE="0" NAME=CARGO4><BR><BR>
<INPUT TYPE=TEXT VALUE="0" NAME=CARGO5><BR><BR>
<INPUT TYPE=TEXT VALUE="0" NAME=CARGO6><BR><BR>
</td>
<td>ABONO $:
<INPUT TYPE=TEXT VALUE="0" NAME=ABONO1><BR><BR>
<INPUT TYPE=TEXT VALUE="0" NAME=ABONO2><BR><BR>
<INPUT TYPE=TEXT VALUE="0" NAME=ABONO3><BR><BR>
<INPUT TYPE=TEXT VALUE="0" NAME=ABONO4><BR><BR>
<INPUT TYPE=TEXT VALUE="0" NAME=ABONO5><BR><BR>
<INPUT TYPE=TEXT VALUE="0" NAME=ABONO6><BR><BR>
</td>

en fin, este codigo de abajo es la conexion y la consulta, con el for, pero no encuentroo porque no corre, en la parte de arriba, lo que me faltó fue lo de concepto, jejejej pero como son 6 combobox de 25 opciones cada uno, son demasiados caracteres para publicar, ejjeej

Código Javascript:
Ver original
  1. <%
  2.  
  3.             // Para que permita grabar los datos si la tabla está vacia.
  4.             if (request.getParameter("GRABAR") != null) {
  5.  
  6.                 // objetos de enlace
  7.  
  8.                 Connection canal = null;
  9.  
  10.                 ResultSet tabla = null;
  11.  
  12.                 Statement instruccion = null;
  13.  
  14.                 String strcon = "jdbc:mysql://localhost/scii_financiero?user=root&password=";
  15.  
  16.                 // abriendo canal o enlace en su propio try-catch
  17.  
  18.                 try {
  19.  
  20.                     Class.forName("com.mysql.jdbc.Driver").newInstance();
  21.  
  22.                     canal = DriverManager.getConnection(strcon);
  23.  
  24.                     instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
  25.                             ResultSet.CONCUR_UPDATABLE);
  26.  
  27.                 } catch (java.lang.ClassNotFoundException e) {
  28.                 } catch (SQLException e) {
  29.                 }
  30.                 ;
  31.  
  32.                 //cargando los campos a grabar
  33.  
  34.                 // excepto clave porque en mysql es de tipo auto-increment
  35.                 //consulta uno
  36.  
  37.  
  38.                 //consulta dos
  39.  
  40.                /** Integer num_poliza = Integer.parseInt(request.getParameter("NUM_POLIZA"));
  41.                 Integer num_diario = Integer.parseInt(request.getParameter("NUM_DIARIO"));
  42.                 String concepto = request.getParameter("CONCEPTO");
  43.                 Integer cargo = Integer.parseInt(request.getParameter("CARGO"));
  44.                 Integer abono = Integer.parseInt(request.getParameter("ABONO"));**/
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.                 // insert into tabla(columnas) values(valores);
  53.  
  54.  
  55.                 for (int i = 1; i < 7; i++) {
  56.                    
  57.  
  58.  
  59.  
  60.                     String campo_concepto = "concepto" + i;
  61.                     String campo_cargo = "cargo" + i;
  62.                     String campo_abono = "abono" + 1;
  63.  
  64.                     String concepto = request.getParameter(campo_concepto); // aqui mi idea que tus textfield se llamen nombre mas un numero name="concepto0"
  65.                     Integer cargo = Integer.parseInt(request.getParameter(campo_cargo));
  66.                     Integer abono = Integer.parseInt(request.getParameter(campo_abono));
  67.  
  68.                     // y asi recuperas todos y luego los insertas con la linea que tienes arriba
  69.  
  70.                     String q = "INSERT INTO movimientos_polizas( concepto , cargo , abono ) VALUES" +
  71.                             "(\"" + concepto + "\"," + cargo + "," + abono + ");";
  72.                     // y esto se repite 6 veces y como i crece la siguiente vez recuperaria los valores de la siguiente fila
  73.  
  74.  
  75.  
  76.                      try {
  77.  
  78.                         // agregando renglon (insert)
  79.  
  80.                         int n = instruccion.executeUpdate(q);
  81.  
  82.  
  83.  
  84.  
  85.                         //avisando que se hizo la instruccion
  86.  
  87.                         out.println("REGISTRO INSERTADO TOTAL");
  88.  
  89.                     } catch (SQLException e) {
  90.                         out.println(e);
  91.                     }
  92.                     ;
  93.  
  94.                     try {
  95.  
  96.                         // tabla.close();
  97.  
  98.                         instruccion.close();
  99.  
  100.                         canal.close();
  101.  
  102.                     } catch (SQLException e) {
  103.                         out.println(e);
  104.                     }
  105.                     ;
  106.  
  107.                 }
  108.                
  109.                 ;
  110.  
  111.                 }
  112.  
  113.                     //    String query2 = "insert into movimientos_polizas( concepto , cargo , abono , num_poliza , num_diario) values " +
  114.                     //                      "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + "),", +
  115.                     //                    "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ");";
  116.  
  117.                 // construyendo forma dinamica
  118.  
  119.         %>
  #11 (permalink)  
Antiguo 05/05/2010, 14:07
 
Fecha de Ingreso: marzo-2010
Mensajes: 62
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: insertar varios registros de un solo click en mysql

mmmm pero ps tu dime que es lo que marca de error o cual es el problema, no soy adivino y en pseudocodigo es dificil saber los errores.
primero no recuerdo si influyan las mayusculas y las minusculas, segun yo si asi que checa eso por que en tu jsp los nombres de tus campos estan en mayusculas y abajo los pones con minusculas, tambien procura poner los nombres entre comillas (en el jsp claro) por que esos pequeños detalles a veces pueden llegar a causar conflicto.
segundo en el campo_abono le pusiste +1 en vez de i.
otra cosa por que pones int n= instruccion.executeUpdate(); ?? por que igualas tu sentencia de insertar a un int??
por ultimo por que ay tantos ; nada mas asi ?? segun yo no van.
Pues checa esto pero te podria ayudar mas si me dices los errores, bueno dentro de lo que cabe por que yo tambien soy un novato jaja.

Saluditos.

Última edición por cosme1; 05/05/2010 a las 14:21
  #12 (permalink)  
Antiguo 05/05/2010, 21:13
 
Fecha de Ingreso: mayo-2010
Mensajes: 6
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: insertar varios registros de un solo click en mysql

Cita:
Iniciado por cosme1 Ver Mensaje
mmmm pero ps tu dime que es lo que marca de error o cual es el problema, no soy adivino y en pseudocodigo es dificil saber los errores.
primero no recuerdo si influyan las mayusculas y las minusculas, segun yo si asi que checa eso por que en tu jsp los nombres de tus campos estan en mayusculas y abajo los pones con minusculas, tambien procura poner los nombres entre comillas (en el jsp claro) por que esos pequeños detalles a veces pueden llegar a causar conflicto.
segundo en el campo_abono le pusiste +1 en vez de i.
otra cosa por que pones int n= instruccion.executeUpdate(); ?? por que igualas tu sentencia de insertar a un int??
por ultimo por que ay tantos ; nada mas asi ?? segun yo no van.
Pues checa esto pero te podria ayudar mas si me dices los errores, bueno dentro de lo que cabe por que yo tambien soy un novato jaja.

Saluditos.
Muchas gracias cosme, despues de miles de intentos, ahi estáa, funcionando, muchas graciass! de vdd, me sirvió de mucho tu consejo! Por cierto, lo de los muchos ; que hay, son correspondientes a la identacion, solo que se me va en el enter, pero corresponde a la finalizacion de una declaracion jejej! y con lo de instrucción.executeUpdate(); se utiliza para eecutar la funcion ya sea de actualizar, insertar o eliminar en la base de datos! jejeje y nuevamente gracias por tu ayuda en mi problema!

Código Javascript:
Ver original
  1. <&#37;
  2.  
  3.             // Para que permita grabar los datos si la tabla está vacia.
  4.             if (request.getParameter("GRABAR") != null) {
  5.  
  6.                 // objetos de enlace
  7.  
  8.                 Connection canal = null;
  9.  
  10.                 ResultSet tabla = null;
  11.  
  12.                 Statement instruccion = null;
  13.  
  14.                 String strcon = "jdbc:mysql://localhost/scii_financiero?user=root&password=";
  15.  
  16.                 // abriendo canal o enlace en su propio try-catch
  17.  
  18.                 try {
  19.  
  20.                     Class.forName("com.mysql.jdbc.Driver").newInstance();
  21.  
  22.                     canal = DriverManager.getConnection(strcon);
  23.  
  24.                     instruccion = canal.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
  25.                             ResultSet.CONCUR_UPDATABLE);
  26.  
  27.                 } catch (java.lang.ClassNotFoundException e) {
  28.                 } catch (SQLException e) {
  29.                 }
  30.                 ;
  31.  
  32.                 //cargando los campos a grabar
  33.                 // excepto clave porque en mysql es de tipo auto-increment
  34.                 // insert into tabla(columnas) values(valores);
  35.  
  36.  
  37.                 for (int i = 0; i < 6; i++) {
  38.  
  39.  
  40.  
  41.  
  42.                     String campo_concepto = "CONCEPTO" + i;
  43.                     String campo_cargo = "CARGO" + i;
  44.                     String campo_abono = "ABONO" + i;
  45.                     String campo_num_poliza = "NUM_POLIZA";
  46.                     String campo_num_diario = "NUM_DIARIO";
  47.  
  48.                     String concepto = request.getParameter(campo_concepto); // aqui mi idea que tus textfield se llamen nombre mas un numero name="concepto0"
  49.                     Integer cargo = Integer.parseInt(request.getParameter(campo_cargo));
  50.                     Integer abono = Integer.parseInt(request.getParameter(campo_abono));
  51.                     Integer num_poliza = Integer.parseInt(request.getParameter(campo_num_poliza));
  52.                     Integer num_diario = Integer.parseInt(request.getParameter(campo_num_diario));
  53.  
  54.                     // y asi recuperas todos y luego los insertas con la linea que tienes arriba
  55.  
  56.                     String q = "INSERT INTO movimientos_polizas( concepto , cargo , abono , num_poliza , num_diario ) VALUES" +
  57.                             "(\"" + concepto + "\"," + cargo + "," + abono + "," + num_poliza + "," + num_diario + ");";
  58.  
  59.                     // y esto se repite 6 veces y como i crece la siguiente vez recuperaria los valores de la siguiente fila
  60.  
  61.                     // agregando renglon (insert)
  62.                         int n = instruccion.executeUpdate(q);
  63.  
  64.                 };
  65.  
  66.  
  67.              
  68.  
  69.                     try {
  70.  
  71.                         // tabla.close();
  72.  
  73.                         instruccion.close();
  74.  
  75.                         canal.close();
  76.  
  77.                     } catch (SQLException e) {
  78.                         out.println(e);
  79.                     }
  80.                     ;
  81.  
  82.                 }
  83.  
  84.  
  85.         %>

Última edición por josh_michel; 05/05/2010 a las 21:19
  #13 (permalink)  
Antiguo 06/05/2010, 23:15
 
Fecha de Ingreso: marzo-2010
Mensajes: 62
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: insertar varios registros de un solo click en mysql

Ok me alegro que te haya servido, y si suele pasar lo de los enter pero aun no entiendo por que igualas tu sentencia de query a un int que no un int es para numeros??, se ve muy raro la verdad yo nunca lo eh intentado asi yo ocupo el preparestatement checalo te puede servir, otra cosa supongo que estas validando tus campos en tu formulario por que sino si alguien llega a meter algo que no sea numero, en donde conviertes a integer te puede "tronar" tu programa. Bueno pues de nada y que bueno que te sirvio.

Saluditos.

Etiquetas: mysql, registros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:40.