clases con php

Alberto Rivera rivera.alberto en gmail.com
Sab Dic 8 15:02:38 CLST 2007


Hola señores le cuento por si me pueden orientar o recomendarme una 
documentación o cualquier cosa que sirva tengo una tabla con 20 columnas 
y espero tener unos 24000 registros para fin de año, estos registros son 
históricos del año pero de todas formas quiero utilizarlos para hacer un 
informe en fpdf que me están pidiendo. El problema es que fpdf como 
todos los scripts en php generan una cantidad de mb de almacenamiento en 
memoria que es muy superior a lo que cualquier servidor tendría 
adicionalmente que supera concres el tiempo de ejecución, así que pensé 
en realizar una vista con los datos que me interesan  que son :

id  ---> identificación del registro en la tabla
cod --> codigo de identificación de la tabla de donde venía el registro
rut --> rut de la persona
sueldo base--> sueldo base de la persona
sueldomes  --> sueldo base / numero de dias trabajados
impuestos --> impuestos :)

la inserción de los resgitros a esta tabla la estoy haciendo asi:

            $sql="INSERT INTO `bd1`.`$tablares` SELECT * FROM 
`bd1`.`$tablaini`";

y para insertarle el id :

          $sql = "ALTER TABLE $tablares  ORDER BY `rut` ASC ";
          $sql = "ALTER TABLE $tablares ADD `id` INT NOT NULL 
AUTO_INCREMENT PRIMARY KEY FIRST" ;

de esa forma se ordena por rut y a ese rut que puede estar repetido ya 
que no es una llave, se le asigna un id que si es la llave primaria.

Bueno el asunto es que como se pueden dar cuenta, cualquier consulta a 
24000 registros se demorará una eternidad en ejecutarse por lo cual 
pensé en la vista y la estoy creando de esta forma

          $sql  = " CREATE VIEW `db1`.`vistaanual` AS SELECT id, rut, 
sueldobase, sueldomes FROM $tablares" ;

esto en realidad funciona y puedo hacer la consulta directamente a la 
vista, con lo que todo, queda más liviando.

El problema es que como comenté anteriormente los rut's de las personas 
se van a repetir 12 veces en esta tabla (una vez por mes),  lo cual 
según la lógica del asunto esta bien .

Ahora ¿cómo podría crear esta vista para que sumara los valores en el 
caso de que los rut estuvieran repetidos?

o sea

rut1 = 1000 ,2000
rut2 = 1000 ,2000
rut3 = 1000 ,2000

rut2 = 5000 ,3000
rut3 = 1500 ,3000
rut4 = 1000 ,2000

Registros en la vista :

rut1 = 1000 ,2000
rut2 = 6000 ,5000
rut3 = 2500 ,3000
rut1 = 1000 ,2000

alguna idea documentación o alguna experiencia que me pueda servir ???

salu2 a to2 y agradezco anticipadamente.


Más información sobre la lista de distribución PHP