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

como hacer un solo for???

Estas en el tema de como hacer un solo for??? en el foro de Java en Foros del Web. hola ando atoradissima con este problemilla ojala puedan ayudarme grax tengo el sig codigo jsp, con 2 for por separado cada for hace bien su ...
  #1 (permalink)  
Antiguo 25/10/2010, 13:55
Avatar de sanchezg  
Fecha de Ingreso: abril-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Exclamación como hacer un solo for???

hola ando atoradissima con este problemilla ojala puedan ayudarme grax

tengo el sig codigo jsp, con 2 for por separado cada for hace bien su operacion q es del primero mandar una consulta de varias claves y traer los valores correspondientes de estas claves entre estos valores el del percio de cada clave, el segundo for tiene q recibir distintas cantidades y una vez q se van incrementando multiplicarlas con el precio obtenido del 1er for

Código:
String SQLString = "SELECT TOP 10 * FROM conceptos";

if (request.getParameterValues("clave").length > 0 ) {
    SQLString = "SELECT * FROM conceptos WHERE clave IN (";
    for (String s : request.getParameterValues("clave")) {
        SQLString += "\'" + s + "\', ";
 	
	}
    SQLString = SQLString.substring(0, SQLString.lastIndexOf(',')) + ")";
}try { tabla = instruccion.executeQuery(SQLString);
while (tabla.next()) {

float precio = tabla.getFloat(3);String clave = tabla.getString(1);
String titulo = tabla.getString(2);
String [] valores = request.getParameterValues("cantidad");

for (int i = 0; i < valores.length; i++)
{
     
     int cantidad = Integer.parseInt(valores[i]);
     float total = precio * cantidad;out.println("clave:"+clave+"");
out.println("titulo:"+titulo+"");
out.println("PRECIO:"+precio+"");
out.println("cantidad:"+cantidad+"");
out.println("total:"+total+"");
}

en el codigo tal como lo tengo ahorita al multiplicar el precio por la cantidad unicamente trae los valores de la 1clave q consulte y la multiplica por cada una de las cantidades, cuando deberia traer cada clave consultada y multiplicarla por cada cantidad :( ayuda
  #2 (permalink)  
Antiguo 25/10/2010, 16:56
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: como hacer un solo for???

Hola Sanchezg,

Como veo en el código, si solo se muestra un elemento es que el parámetro request.getParameterValues("clave") solo contiene un elemento. Por ello te sugiero que incluyas esta línea:
System.out.println("Elementos: "+request.getParameterValues("clave").length);
Antes del primer IF, a fin de verificar que estar recibiendo todos los valores que indicas.

Probablemente el parámetro sea "claves" y no "clave".

Por otro lado, si se desea hacer en un solo for, es más se puede hacer sin usar for sino un while PERO eso quiere decir que tengas 2 tablas CONCEPTOS y PRECIOS y luego por sentencia SQL haces el join de ambas tablas.

Bueno cualquier consulta no dudes en escribir a [email protected].

Salu2

Maverick
  #3 (permalink)  
Antiguo 26/10/2010, 09:35
Avatar de sanchezg  
Fecha de Ingreso: abril-2009
Mensajes: 76
Antigüedad: 15 años
Puntos: 0
Respuesta: como hacer un solo for???

hola gracias por responder mmm pues esq mis dos for por separado si funcionan, es decir si corro
Código HTML:
Ver original
  1. for (String s : request.getParameterValues("clave")) {
  2.         SQLString += "\'" + s + "\', ";
  3.    
  4.     }
  5.     SQLString = SQLString.substring(0, SQLString.lastIndexOf(',')) + ")";
  6. }
y lo pinto si me trae lo deseado y de igual manera el otro for
Código HTML:
Ver original
  1. String [] valores = request.getParameterValues("cantidad");
  2.  
  3. for (int i = 0; i < valores.length; i++)
  4. {
  5.    
  6.     int cantidad = Integer.parseInt(valores[i]);

pero al realizar la operacion
Código HTML:
Ver original
  1. float total = precio * cantidad;
multiplica las cantidades recibidas por el precio correspondiente a la primera clave consultada y no trae las demas :(
  #4 (permalink)  
Antiguo 26/10/2010, 11:20
 
Fecha de Ingreso: octubre-2010
Mensajes: 27
Antigüedad: 13 años, 6 meses
Puntos: 2
Respuesta: como hacer un solo for???

Hola Sanchezg,

Dime con que B.D. estas trabajando. Sabes puede ser diferente factore por lo que puede estar sucediendo.

Debes empezar a descartar si deseas pasame el código y el script de la B.D a fin de revisarlo en mi PC. Envialo a [email protected]

Saludos

Maverick

Etiquetas: Ninguno
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 07:19.