
04/12/2009, 02:12
|
 | Mod on free time | | Fecha de Ingreso: agosto-2008 Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 7 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 |