Foros del Web » Programando para Internet » PHP »

Ayuda con este codigo

Estas en el tema de Ayuda con este codigo en el foro de PHP en Foros del Web. Que tal a todos, haber si alguien me puede ayudar con esto, nose que tenga de malo y porque funciona asi Código PHP: for( $i  ...
  #1 (permalink)  
Antiguo 13/03/2010, 16:11
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 15 años, 1 mes
Puntos: 0
Ayuda con este codigo

Que tal a todos, haber si alguien me puede ayudar con esto, nose que tenga de malo y porque funciona asi

Código PHP:
for($i 0;  $i<$tot_dias$i++)
                    {
                        
$fecha_ini_temp dif_suma($fechaini$i);
                        if(
strtotime($x3['fecha_ini']) <= strtotime($fecha_ini_temp) and strtotime($x3['fecha_fin']) >= strtotime($fecha_ini_temp))
                        {
                            
$temp $x3['sgl'];
                            
$resultado $temp $resultado;
                        }
                    } 
Esto basicamente calcula una tarifa despendiendo del valor que tenga $x3['sgl'] que es un precio que jala de una base de datos, mi variable $tot_dias en este caso equivale a 5 y los valores con los que prueba $x3['sgl'] son los siguientes

entra 5 veces a ese for por lo cual tiene los siguientes datos
*1900 la primera vez
*1900 la 2da
*1900 la 3ra
*2200 la 4ta
*2200 la 5ta

lo que quiero que haga es que sume conforme va adoptando diferentes valores que la suma manualmente es de 10100 pero me sale un resultado de 13900 y no entiendo porque hace eso, al ciclo if entra cada vez que la fecha este dentro del rango una vez que entra ve en la lista que tarifa debe de obtener y por eso el cambio de fechas, saludos y espero que me haya dado a entender
  #2 (permalink)  
Antiguo 13/03/2010, 16:22
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Ayuda con este codigo

Buenas,

¿Estás seguro que $x3['sgl'] te devuelve esos valores? Esto lo pregunto, ya que por lo que veo, ese for no está dentro del típico while($row = mysql_fetch_array())... en otras palabras, diría a simple vista que $x3['sgl']; solo contiene un valor, que sería el último devuelve de la consulta. No sé si me entendiste ¿Le has hecho un echo a esa variabel dentro del bucle?

Nos vemos
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.
  #3 (permalink)  
Antiguo 13/03/2010, 16:29
 
Fecha de Ingreso: marzo-2009
Mensajes: 163
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Ayuda con este codigo

Si esta dentro del while, nada mas no lo puse aqui, pero si esta dentro del while y el orden en que me toma los valores que mande en echo son 1900 luego 1900 luego1900 luego 2200 luego 2200, NO ESTA MAL QUE SE REPITAN LOS DATOS, porque en mi sistema por dia obtiene un precio diferente, nada mas que me hace mal la suma, he monitoreado la suma como la hace y en al momento de sumarle el 2200 suma el temporal, les pongo lo que imprime con los echo para monitorear,

tarifa-->1900.00|resultado_antes-->0|resultado-->1900
tarifa-->1900.00|resultado_antes-->1900|resultado-->3800
tarifa-->1900.00|resultado_antes-->3800|resultado-->5700
tarifa-->2200.00|resultado_antes-->9500|resultado-->11700
tarifa-->2200.00|resultado_antes-->11700|resultado-->13900

el "resultado_antes" es nada mas la misma variable $resultado lo puse para ver los valores que toma antes de realizar la suma el problema que tiene es en el 3er paso, antes de que haga la suma, realiza nose porque 5700 + 3800 para luego sumarle el valor de 2200 y ahi es donde no entiendo porque me realiza eso =S
  #4 (permalink)  
Antiguo 13/03/2010, 16:54
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 20 años, 4 meses
Puntos: 89
Respuesta: Ayuda con este codigo

A ver...

Intenta lo siguiente :

Antes del while, declara una variable $resultado y le asignas "0", lo que supongo ya hiciste, pero por si acaso...

Luego, haz lo siguiente :

Código PHP:
Ver original
  1. if(strtotime($x3['fecha_ini']) <= strtotime($fecha_ini_temp) and strtotime($x3['fecha_fin']) >= strtotime($fecha_ini_temp))
  2.                         {
  3.                             $resultado += $x3['sgl'];
  4.                         }

Luego, fuera del for, imprimes la variable $resultado para ver que te devuelve.

Cualquier cosa nos avisas.
__________________
Nunca te olvidaré mi negra hermosa. Te extraño demasiado.

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 22:42.