Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/09/2009, 22:28
fermdp
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mar del Plata
Mensajes: 203
Antigüedad: 22 años, 5 meses
Puntos: 0
Como optimizar este script para sumar horas?

Mirando el FAQ http://www.forosdelweb.com/showpost....0&postcount=14 modifique el script para sumar hasta 100 valores que traigo de una base de datos, pero lo hice de una manera un poco torpe porque no se hacerlo de otra, es decir el en script cada vez que es necesario listo "TODOS LOS CAMPOS DE TEXTO" esto funciona pero me queda un script gigantezco, lo que yo quiero es sabiendo cuantos registros me tira la db, por ejemplo 36, que me sume esos 36 campos y no tener que escribir semejante pagina, imaginen que la db me de unos 300 registros para sumar !!! actualmente lo soluciono con el siguiente ejemplo, y limito la consulta a 100 resultados, funciona, pero quisiera optimizar el tema !!!

Código PHP:
function sumaTiempos(t1t2t3t4t5t6t7t8t9t10t11t12t13t14t15t16t17t18t19t20t21t22t23t24t25t26t27t28t29t30t31t32t33t34t35t36t37t38t39t40t41t42t43t44t45t46t47t48t49t50t51t52t53t54t55t56t57t58t59t60t61t62t63t64t65t66t67t68t69t70t71t72t73t74t75t76t77t78t79t80t81t82t83t84t85t86t87t88t89t90t91t92t93t94t95t96t97t98t99t100){  
    var 
secs1 stringToSeconds(t1);  
    var 
secs2 stringToSeconds(t2); 
    var 
secs3 stringToSeconds(t3); 
    var 
secs4 stringToSeconds(t4); 
    var 
secs5 stringToSeconds(t5); 
    var 
secs6 stringToSeconds(t6); 
    var 
secs7 stringToSeconds(t7); 
    var 
secs8 stringToSeconds(t8); 
    var 
secs9 stringToSeconds(t9); 
    var 
secs10 stringToSeconds(t10); 
    var 
secs11 stringToSeconds(t11); 
    var 
secs12 stringToSeconds(t12); 
    var 
secs13 stringToSeconds(t13); 
    var 
secs14 stringToSeconds(t14); 
    var 
secs15 stringToSeconds(t15); 
    var 
secs16 stringToSeconds(t16); 
    var 
secs17 stringToSeconds(t17); 
    var 
secs18 stringToSeconds(t18); 
    var 
secs19 stringToSeconds(t19); 
    var 
secs20 stringToSeconds(t20); 
    var 
secs21 stringToSeconds(t21); 
    var 
secs22 stringToSeconds(t22); 
    var 
secs23 stringToSeconds(t23); 
    var 
secs24 stringToSeconds(t24); 
    var 
secs25 stringToSeconds(t25); 
    var 
secs26 stringToSeconds(t26); 
    var 
secs27 stringToSeconds(t27); 
    var 
secs28 stringToSeconds(t28); 
    var 
secs29 stringToSeconds(t29); 
    var 
secs30 stringToSeconds(t30); 
    var 
secs31 stringToSeconds(t31); 
    var 
secs32 stringToSeconds(t32); 
    var 
secs33 stringToSeconds(t33); 
    var 
secs34 stringToSeconds(t34); 
    var 
secs35 stringToSeconds(t35); 
    var 
secs36 stringToSeconds(t36); 
    var 
secs37 stringToSeconds(t37); 
    var 
secs38 stringToSeconds(t38); 
    var 
secs39 stringToSeconds(t39); 
    var 
secs40 stringToSeconds(t40); 
    var 
secs41 stringToSeconds(t41); 
    var 
secs42 stringToSeconds(t42); 
    var 
secs43 stringToSeconds(t43); 
    var 
secs44 stringToSeconds(t44); 
    var 
secs45 stringToSeconds(t45); 
    var 
secs46 stringToSeconds(t46); 
    var 
secs47 stringToSeconds(t47); 
    var 
secs48 stringToSeconds(t48); 
    var 
secs49 stringToSeconds(t49); 
    var 
secs50 stringToSeconds(t50); 
    var 
secs51 stringToSeconds(t51); 
    var 
secs52 stringToSeconds(t52); 
    var 
secs53 stringToSeconds(t53); 
    var 
secs54 stringToSeconds(t54); 
    var 
secs55 stringToSeconds(t55); 
    var 
secs56 stringToSeconds(t56); 
    var 
secs57 stringToSeconds(t57); 
    var 
secs58 stringToSeconds(t58); 
    var 
secs59 stringToSeconds(t59); 
    var 
secs60 stringToSeconds(t60); 
    var 
secs61 stringToSeconds(t61); 
    var 
secs62 stringToSeconds(t62); 
    var 
secs63 stringToSeconds(t63); 
    var 
secs64 stringToSeconds(t64); 
    var 
secs65 stringToSeconds(t65); 
    var 
secs66 stringToSeconds(t66); 
    var 
secs67 stringToSeconds(t67); 
    var 
secs68 stringToSeconds(t68); 
    var 
secs69 stringToSeconds(t69); 
    var 
secs70 stringToSeconds(t70); 
    var 
secs71 stringToSeconds(t71); 
    var 
secs72 stringToSeconds(t72); 
    var 
secs73 stringToSeconds(t73); 
    var 
secs74 stringToSeconds(t74); 
    var 
secs75 stringToSeconds(t75); 
    var 
secs76 stringToSeconds(t76); 
    var 
secs77 stringToSeconds(t77); 
    var 
secs78 stringToSeconds(t78); 
    var 
secs79 stringToSeconds(t79); 
    var 
secs80 stringToSeconds(t80); 
    var 
secs81 stringToSeconds(t81); 
    var 
secs82 stringToSeconds(t82); 
    var 
secs83 stringToSeconds(t83); 
    var 
secs84 stringToSeconds(t84); 
    var 
secs85 stringToSeconds(t85); 
    var 
secs86 stringToSeconds(t86); 
    var 
secs87 stringToSeconds(t87); 
    var 
secs88 stringToSeconds(t88); 
    var 
secs89 stringToSeconds(t89); 
    var 
secs90 stringToSeconds(t90); 
    var 
secs91 stringToSeconds(t91); 
    var 
secs92 stringToSeconds(t92); 
    var 
secs93 stringToSeconds(t93); 
    var 
secs94 stringToSeconds(t94); 
    var 
secs95 stringToSeconds(t95); 
    var 
secs96 stringToSeconds(t96); 
    var 
secs97 stringToSeconds(t97); 
    var 
secs98 stringToSeconds(t98); 
    var 
secs99 stringToSeconds(t99); 
    var 
secs100 stringToSeconds(t100); 
    var 
secsSuma secs1 secs2 secs3 secs4 secs5 secs6 secs7 secs8 secs9 secs10 secs11 secs12 secs13 secs14 secs15 secs16 secs17 secs18 secs19 secs20 secs21 secs22 secs23 secs24 secs25 secs26 secs27 secs28 secs29 secs30 secs31 secs32 secs33 secs34 secs35 secs36 secs37 secs38 secs39 secs40 secs41 secs42 secs43 secs44 secs45 secs46 secs47 secs48 secs49 secs50 secs51 secs52 secs53 secs54 secs55 secs56 secs57 secs58 secs59 secs60 secs61 secs62 secs63 secs64 secs65 secs66 secs67 secs68 secs69 secs70 secs71 secs72 secs73 secs74 secs75 secs76 secs77 secs78 secs79 secs80 secs81 secs82 secs83 secs84 secs85 secs86 secs87 secs88 secs89 secs90 secs91 secs92 secs93 secs94 secs95 secs96 secs97 secs98 secs99 secs100;  
    return 
secondsToTime(secsSuma);  
   }  

function 
calcT3(){  
with (document.frm)  
t.value sumaTiempos(t1.valuet2.valuet3.valuet4.valuet5.valuet6.valuet7.valuet8.valuet9.valuet10.valuet11.valuet12.valuet13.valuet14.valuet15.valuet16.valuet17.valuet18.valuet19.valuet20.valuet21.valuet22.valuet23.valuet24.valuet25.valuet26.valuet27.valuet28.valuet29.valuet30.valuet31.valuet32.valuet33.valuet34.valuet35.valuet36.valuet37.valuet38.valuet39.valuet40.valuet41.valuet42.valuet43.valuet44.valuet45.valuet46.valuet47.valuet48.valuet49.valuet50.valuet51.valuet52.valuet53.valuet54.valuet55.valuet56.valuet57.valuet58.valuet59.valuet60.valuet61.valuet62.valuet63.valuet64.valuet65.valuet66.valuet67.valuet68.valuet69.valuet70.valuet71.valuet72.valuet73.valuet74.valuet75.valuet76.valuet77.valuet78.valuet79.valuet80.valuet81.valuet82.valuet83.valuet84.valuet85.valuet86.valuet87.valuet88.valuet89.valuet90.valuet91.valuet92.valuet93.valuet94.valuet95.valuet96.valuet97.valuet98.valuet99.valuet100.value);  

Gracias al usuario derkenuke modifiqué parte del código de la primer función por esto

Código PHP:
function sumaTiempos() {
for(var 
i=0dev=0i<sumaTiempos.arguments.lengthi++)
dev+=stringToSeconds(sumaTiempos.arguments[i]);
return 
dev;

Ahorrando muchas líneas de código y sin importar la cantidad de argumentos pasados,lo que me faltaría es optimizar la función calcT3 para no tener que poner por ejemplo los 100 valores de los campos (t1.value, t2.value, t3.value etc) se entiende, buscar alguna manera que diga función sumartiempo (sumame todos los campos del form)

Desde ya les estoy muy agradecido!!!
__________________
:) Fernando Dichiera (:
[email protected]