digamos
tenemos 2 tablas
la primera se registran lecturas
y la segunda se guardan los promedios de esas lecturas
le adjunto un documento en excel donde se muestra lo que quiero hacer http://sdrv.ms/1it8GYS
el la columna F12 empieza el calculo de variables tomalas 5 datos anteriores y los promedia y despues toma los ultimo 4 valores y el promediado para sacar el valor de f14 y asi sucesivamente hasta que ingrese otro dato y vuelve a hacer el calculo
lo que quiero es eso que me lo haga de forma automatica que al ingresar algun dato me calcule podrian ayudarme
no se como hacer operaciones desde dos tablas diferentes
Código PHP:
<?
/*
MEDIAS MOVILES
metodos: add, reset, setN, setNesimo, caculate, unDo (deshace el ultimo calculo)
*/
// superclase
abstract Class Media {
protected $n;
protected $arr = array();
protected $arrSize;
protected $calculo =null;
protected $calculoAux=null; // guarda valor anterior
function __construct ($n){
$this->setN($n);
}
// usar solo despues... de tener el arreglo "lleno" !!
function setNesimo ($val){
$this->arr [($this->n) - 1]=$val;
}
function unDo (){
$this->calculo = $this->calculoAux;
}
# puede ser protected porque el usuario no la llama directamente
protected function saveCalc(){
$this->calculoAux = $this->calculo;
}
function reset(){
unset ($this->arr);
$this->arrSize=0;
$this->n=0;
$this->calculoAux=null;
$this->calculo =null;
}
// agrega a $rb los elemenos de $this->arr
protected function add_array(array $rb){
foreach ($rb as $val){
$this->arr[] = $val;
}
}
function add($data) {
if (is_array($data)){
$this->add_array ($data);
}else{
$this->arr[] = $data;
}
$this->arrSize = count ($this->arr);
}
function setN($n){
$this->n = $n;
}
abstract protected function calculate(); // debe ser abstracta igual que la clase!!!
} // fin
Class MediaSimple extends Media {
/*
// hace falta si el constructor es "protected" en la clase padre
function __construct ($n){
parent::__construct($n);
}
*/
private function summ(){
$res=0;
for ($i=0;$i<$this->arrSize;$i++){
$res = $res + $this->arr[$i];
}
return $res;
}
public function calculate(){
$this->saveCalc;
$this->calculo = ($this->summ ($this->arr)/$this->n);
return ($this->calculo);
}
}
Class MediaExponencial extends Media {
function __construct ($n){
if ($n==null) $n=0;
parent::__construct($n);
}
/*
public function setEma ($ema){
$this->calculo = $ema;
}
*/
public function calculate(){
$this->saveCalc();
$k = (2 / ( $this->n + 1));
if ($this->calculo==0)
$this->calculo = $this->arr[0];
for ($i=0;$i<$this->n;$i++){
$this->calculo = $this->calculo + (($this->arr[$i] - $this->calculo) * $k);
}
return ($this->calculo);
}
}
?>