Foros del Web » Programación web » PHP »

Suma recursiva?? o de otro modo??

Estas en el tema de Suma recursiva?? o de otro modo?? en el foro de PHP en Foros del Web. Saludos a todos y todas. Mi duda es la siguiente: Como resultado de una consulta obtengo un numero indeterminado de casillas de resultado. Código PHP: ...
  #1 (permalink)  
Antiguo 03/04/2012, 17:14
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 212
Antigüedad: 3 años, 10 meses
Puntos: 28
Suma recursiva?? o de otro modo??

Saludos a todos y todas.
Mi duda es la siguiente:
Como resultado de una consulta obtengo un numero indeterminado de casillas de resultado.
Código PHP:
$resultado "SELECT producto, SUM(kilos) FROM datos WHERE rut ='$rut' AND fecha
 ='$fecha' GROUP BY producto"

     
$result mysql_query($resultado) or die(mysql_error());

while(
$row mysql_fetch_array($result)){
echo 
"<input type='text' class='Estilo3' readonly='readonly' name='producto' 
value='"
.$row['producto']. "'/> $ <input type='text' name='valor". ++$a."' class='Estilo2' /> 
<input type='text' class='Estilo3' readonly='readonly' 
name='kilos' size='6' value='"
$row['SUM(kilos)'].  " KL'/>  <input 
name='resultado' type='text' readonly='readonly' class='Estilo3' size='15' 
value='$"
.$row['SUM(kilos)']* $_POST['valor'.++$b] ."' /></p>"
Ahora el problema es el siguiente. ¿Es posible sumar los valores del input text resultado (es el último)?, ya que como se aprecia este cuadro de texto muestra un resultado que se genera después de la consulta, por lo que SELECT SUM no me serviría

Si es posible, que función me sirve?

Desde ya muchas gracias.
__________________
La ciencia al poder. Pazciencia ya viene
  #2 (permalink)  
Antiguo 04/04/2012, 02:40
Avatar de charlyalegret  
Fecha de Ingreso: septiembre-2011
Ubicación: Barcelona
Mensajes: 707
Antigüedad: 3 años
Puntos: 140
Respuesta: Suma recursiva?? o de otro modo??

Supongo que si inicialmente defines una variable (ej. $final = 0), y en cada ciclo del while haces algo como:

$final = $final + ( $row['SUM(kilos)']* $_POST['valor'.++$b] )

o lo que corresponda, tendrás $final con el valor de la suma total.

Saludos
  #3 (permalink)  
Antiguo 06/04/2012, 09:05
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 212
Antigüedad: 3 años, 10 meses
Puntos: 28
Respuesta: Suma recursiva?? o de otro modo??

charlyalegret, agradezco un monton tu tiempo y tu respuesta. he estado intentando de varios modos seguir tu consejo, sin embargo no logro que funcione, o mejor dicho, el resultado que da es siempre 0

Código PHP:
$final=0;
$resultado "SELECT producto, SUM(kilos) FROM datos WHERE rut ='$rut' AND fecha 
 ='$fecha' GROUP BY producto"
;  
      
$result mysql_query($resultado) or die(mysql_error()); 

while(
$row mysql_fetch_array($result)){ 
echo 
"<input type='text' class='Estilo3' readonly='readonly' name='producto'  
value='"
.$row['producto']. "'/> $ <input type='text' name='valor". ++$a."' class='Estilo2' />  
<input type='text' class='Estilo3' readonly='readonly'  
name='kilos' size='6' value='"
$row['SUM(kilos)'].  " KL'/>  <input  
name='resultado' type='text' readonly='readonly' class='Estilo3' size='15'  
value='$"
.$row['SUM(kilos)']* $_POST['valor'.++$b] ."' /></p>";
$final $final + ( $row['SUM(kilos)']* $_POST['valor'.++$b] );
echo 
"$final"


Hay algo mal hecho??
Desde ya muchas gracias
__________________
La ciencia al poder. Pazciencia ya viene
  #4 (permalink)  
Antiguo 06/04/2012, 09:41
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.150
Antigüedad: 6 años, 1 mes
Puntos: 137
Respuesta: Suma recursiva?? o de otro modo??

Estas haciendo mal el asunto, fijate que debe de ponerle un alias al sum() de la consulta ejemplo.


Código PHP:
Ver original
  1. $resultado = "SELECT producto, SUM(kilos) as totalkilos FROM datos WHERE rut='".$rut."' AND fecha = '".$fecha."' GROUP BY producto";  
  2.  
  3. # Y luego llamas ese alias de esta forma
  4.  
  5. echo $row['totalkilos'];
  6.  
  7. # entonces para sumarlo a la variable final solo haces esto.
  8.  
  9. $final = $final + ( $row['totalkilos']* $_POST['valor'.++$b] );

Recuerda cambiar $row['SUM(kilos)'] por esto $row['totalkilos'] en todo tu codigo.
  #5 (permalink)  
Antiguo 11/04/2012, 22:45
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 212
Antigüedad: 3 años, 10 meses
Puntos: 28
Respuesta: Suma recursiva?? o de otro modo??

Agradezco los aportes, pero hasta ahora nada funciona. Lo que necesito es generar un total final, resultante de la suma del input text resultado.
Me he dado mil veces contra la pared y nada.
__________________
La ciencia al poder. Pazciencia ya viene
  #6 (permalink)  
Antiguo 11/04/2012, 23:14
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.020
Antigüedad: 5 años
Puntos: 127
Respuesta: Suma recursiva?? o de otro modo??

<saludos>
Me parece que estas formulando mal tu asunto, dices
Cita:
Lo que necesito es generar un total final, resultante de la suma del input text resultado.
1. Suma del campo resultado contra que?????
2. Donde cierra el while que se visualiza?????
3. Porque no pones legiblemente en el foro tu código?? (Para eso están los highlight)
4. Creo que sería mejor que plantees un ejemplo que vaya
más allá del código, que plasme lo que se quiere lograr.
Espero algo de esto te sirva para que plantees mejor
tu idea.
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
  #7 (permalink)  
Antiguo 11/04/2012, 23:16
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 212
Antigüedad: 3 años, 10 meses
Puntos: 28
Respuesta: Suma recursiva?? o de otro modo??

Cita:
Iniciado por mortiprogramador Ver Mensaje
<saludos>
Me parece que estas formulando mal tu asunto, dices

1. Suma del campo resultado contra que?????
2. Donde cierra el while que se visualiza?????
3. Porque no pones legiblemente en el foro tu código?? (Para eso están los highlight)
4. Creo que sería mejor que plantees un ejemplo que vaya
más allá del código, que plasme lo que se quiere lograr.
Espero algo de esto te sirva para que plantees mejor
tu idea.
</saludos>
el codigo esta un poco mas arriba
__________________
La ciencia al poder. Pazciencia ya viene
  #8 (permalink)  
Antiguo 11/04/2012, 23:19
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.020
Antigüedad: 5 años
Puntos: 127
Respuesta: Suma recursiva?? o de otro modo??

Cita:
Iniciado por ricardo_tu Ver Mensaje
el codigo esta un poco mas arriba

<saludos>
Creo que no has leído con detenimiento
lo que te respondí, tomate un momento
y hazlo.
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
  #9 (permalink)  
Antiguo 11/04/2012, 23:23
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 212
Antigüedad: 3 años, 10 meses
Puntos: 28
Respuesta: Suma recursiva?? o de otro modo??

Explicado en palabras:
tengo una consulta a una base de datos, esta da como resultado:
Kilos y Producto
Luego el usuario agrega un nuevo valor que se multiplica por kilos
Los resultados de esa multiplicación (q se hizo selectiva según producto) los necesito sumar para generar un total final.

De todos modos agradezco tu ayuda, pero con altaneria, ahorrate la molestia
__________________
La ciencia al poder. Pazciencia ya viene
  #10 (permalink)  
Antiguo 11/04/2012, 23:43
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.020
Antigüedad: 5 años
Puntos: 127
Respuesta: Suma recursiva?? o de otro modo??

Cita:
Iniciado por ricardo_tu Ver Mensaje
Explicado en palabras:
tengo una consulta a una base de datos, esta da como resultado:
Kilos y Producto
Luego el usuario agrega un nuevo valor que se multiplica por kilos
Los resultados de esa multiplicación (q se hizo selectiva según producto) los necesito sumar para generar un total final.

De todos modos agradezco tu ayuda, pero con altaneria, ahorrate la molestia
<saludos>
No es altanería, de hecho, solicité tan solo que te tomaras un momento
para leer todo lo que te escribí pues en tu replica no vi respuestas a
las preguntas.

Ahora, si lo que te molesta es que te digan que postees mejor,
entonces postea como quieras, pero es bastante incomodo ver un código
desordenado, tema que se puede solventar fácilmente con lo que mencioné
en mi post anterior.

Adicional, si pregunte otras cosas es porque en base a eso
se puede dar una mejor respuesta, pero veo que no te interesa
recibir una extensiva colaboración pues nisiquiera respondiste a todos los puntos que yo, abusivamente, me tome la molestía de preguntar.

Sin embargo, la operación que se quiere se puede realizar
si se quiere en el formulario, y se podría hacer con javascript
o si se quiere con php un buen método es sumarlos en efecto
a medida que se recorren (luego de envíar nuevamente los datos para
que surta efecto la multiplicación, y sumar estas nuevas cantidades)


Suerte con eso.

</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
  #11 (permalink)  
Antiguo 12/04/2012, 00:13
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 212
Antigüedad: 3 años, 10 meses
Puntos: 28
Respuesta: Suma recursiva?? o de otro modo??

Prefiero a Neruda escribiendo
__________________
La ciencia al poder. Pazciencia ya viene
  #12 (permalink)  
Antiguo 12/04/2012, 03:42
 
Fecha de Ingreso: septiembre-2010
Ubicación: /home/
Mensajes: 91
Antigüedad: 4 años
Puntos: 17
Respuesta: Suma recursiva?? o de otro modo??

Hola ricardo_tu

en todos los inputs que están dentro tu bucle while, hay valores?
si es así, podrías imprimir con un simple echo los valores con los cuales acumulas el resultado final, seguramente así encuentres donde está el problema!

EDITADO
Código PHP:
$final 0;
$resultado "SELECT producto, SUM(kilos) as total_kilos FROM datos WHERE rut ='$rut' AND fecha ='$fecha' GROUP BY producto";  
$result mysql_query($resultado) or die(mysql_error()); 
while(
$row mysql_fetch_array($result)){ 
    echo 
"<input type='text' class='Estilo3' readonly='readonly' name='producto'   
            value='"
.$row['producto']. "'/> $ <input type='text' name='valor". ++$a."' class='Estilo2' />   
            <input type='text' class='Estilo3' readonly='readonly'   
            name='kilos' size='6' value='"
$row['total_kilos '].  " KL'/>  <input   
            name='resultado' type='text' readonly='readonly' class='Estilo3' size='15'   
            value='$"
.$row['total_kilos ']* $_POST['valor'.++$b] ."' /></p>"
 
// Aqui es donde imprimo por pantalla las variables antes de hacer la operacion a ver si veo donde esta el fallo
echo $final." - ".$row['total_kilos']."-".$_POST['valor'.++$b]."<br>";
$final $final + ($row['total_kilos']* $_POST['valor'.++$b]);    
}
echo 
$final
Saludos

Última edición por Bugger; 12/04/2012 a las 03:53 Razón: Añadir algo de código
  #13 (permalink)  
Antiguo 12/04/2012, 19:20
Avatar de ricardo_tu  
Fecha de Ingreso: noviembre-2010
Ubicación: Mas aca del mas alla
Mensajes: 212
Antigüedad: 3 años, 10 meses
Puntos: 28
Respuesta: Suma recursiva?? o de otro modo??

Bugger, funcionó de maravillas, millón de gracias por tu generoso aporte
__________________
La ciencia al poder. Pazciencia ya viene
  #14 (permalink)  
Antiguo 12/04/2012, 20:49
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.020
Antigüedad: 5 años
Puntos: 127
Respuesta: Suma recursiva?? o de otro modo??

<saludos>
Seguro Neruda podría hacer poesía con semejante post.
Bugger, merecido tu nick (si lo escogiste programáticamente hablando),
diste justo en el bug, congrats.
</saludos>
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."

Etiquetas: mysql, recursiva, sql, suma
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 15:57.
SEO by vBSEO 3.3.2