Ver Mensaje Individual
  #2 (permalink)  
Antiguo 04/12/2009, 02:12
Avatar de Triby
Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 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