Foros del Web » Programando para Internet » PHP »

Problema logico en PHP, Complicadisimo !

Estas en el tema de Problema logico en PHP, Complicadisimo ! en el foro de PHP en Foros del Web. Hola amigos! Se trata que he venido pensando sobre como realizar este calculo para que me ajuste al 100% cada vez que agregue un nuevo ...
  #1 (permalink)  
Antiguo 03/12/2009, 23:53
 
Fecha de Ingreso: octubre-2009
Mensajes: 74
Antigüedad: 15 años
Puntos: 0
De acuerdo Problema logico en PHP, Complicadisimo !

Hola amigos!

Se trata que he venido pensando sobre como realizar este calculo para que me ajuste al 100% cada vez que agregue un nuevo Calibre o Elimine.

Se trata que siempre debe quedar al 100% nunca debe aumentar o disminuir


[IMG]img109.imageshack.us/img109/7576/imagenb.png[/IMG]

Bueno en esa tabla presento Los calibres como una fila y el valor porcentual como otra fila
(la suma del valor porcentual siempre debe dar 100)

El tema es que yo debo eliminar un Calibre o mas bien Desactivarlo
(presionar en Modificar Calibres y hay me deben aparecer todos los calibres para yo desactivarlos o activarlos)

Si desactivo un calibre, luego no me debe aparecer en esa tabla, pero uno de los dramas es que debo desaparecer el valor porcentual relacionado a ese calibre que desactive, pero el valor porcentual debe seguir sumando el 100. Se debe ajustar.

Lo que tengo en mente es que si desactivo un calibre y su valor porcentual, deberé hacer el calculo del valor porcentual desactivado, dividirlo por la cantidad total y el resultado sumarlo a cada valor porcentual que queda en la tabla, esa seria como una solución.

Ejemplo:

Desactivo el Calibre 36 y el Valor porcentual 1.03
El calculo que debo hacer es:
1.03/ 17 (el 17 es la cantidad total de valores porcentuales que me quedara en la tabla)
el resultado de eso, se lo sumo a los demás valores porcentuales que me quedan en la tabla
y me daría el 100

Y si fuera lo contrario por ejemplo Lo activo

Saco el mismo calculo pero ahora le resto el valor a los valores porcentuales para mantener el 100.

Esa es una de las miles de soluciones.

Bueno y las otras espero que me puedan prestar de su tiempo y lógica para poder encontrar otras formas de mantener el 100 en el valor porcentual considerando que podre activar y desactivar un calibre y su valor porcentual.


Muchas gracias !!!
  #2 (permalink)  
Antiguo 04/12/2009, 02:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problema logico en PHP, Complicadisimo !

No lo veo tan complicado, practicamente ya lo resolviste, solo hay que aplicarlo en la base de datos.

En tu ejemplo, desactivas el que tiene 1.03 de porcentaje:
UPDATE tabla SET estado = 'inactivo' WHERE calibre = 36

Cuentas los calibres activos:
SELECT COUNT(*) FROM tabla WHERE estado = 'activo'

Supongamos que el resultado fue de 17 como en tu ejemplo:
aumentar = 1.03 / 17
(El resultado es 0.06)

Actualizas todos los registros activos:
UPDATE tabla SET porcentaje = porcentaje + aumentar WHERE estado = 'activo'

Seguramente podra haber algunas diferencias por cuestiones de redondeo de decimales, pero tampoco es tan dificil.

Averiguas la diferencia:
diferencia = 1.03 - (aumentar * 17)
(el resultado es 0.01)

Multiplicas la diferencia por 100 y sabras cuantos registros debes modificar:
registros = diferencia * 100
SELECT calibre FROM tabla WHERE estado = 'activo' LIMIT registros

Y haces un while para aumentar o disminuir 0.01 a cada registro que sea necesario
__________________
- León, Guanajuato
- GV-Foto
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 21:29.