Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/06/2008, 00:19
Wuakap
 
Fecha de Ingreso: mayo-2008
Mensajes: 40
Antigüedad: 16 años, 7 meses
Puntos: 3
Pregunta Mi clase no reconoce el ultimo registro ingresado

Antecedentes:

Bueno, tengo una clase llamada reuniones. Esta clase me guarda unos arrays, que se van llenando a medida que el usuario va seleccionando una serie de personas que estan en una tabla.

Al hacer click sobre una persona, se va a una función PHP, que llama a su vez a la clase.

La clase se encuentra en el fichero clase.php y la funcion esta en cuerpo.php

Además, agrego unos datos a modo de prueba al iniciar cuerpo.php

Estoy usando el framework XAJAX, por eso que puedo hacer una llamada a una funcion PHP desde HTML (no me muevan de este foro, pues la pregunta esta relacionada mas con POO a XAJAX)

Problema:

Bueno, al hacer click sobre una persona, envio los parametros necesarios, se hace la consulta sql (comprobado), agrego los resultados a los arrays de la clase. Despues desde esa misma función, leo los arrays con el metodo getEncargados(), pero solo me lee los datos de prueba que coloque, más el último registro que ingrese.

Es decir, si hay una lista de 5 personas, y el usuario hace click en los 5, solo muestra los datos de prueba más el último elemento donde se hizo click.

Se me imagina que el problema ocurre, dado que utilizo la clase dentro una función php, mientras que la clase esta definida en el "encabezado". Pero si declaro la clase dentro de la función, cada vez que se llame a la función estaré generando una nueva instancia de la clase... y por consiguiente, los datos no se guardaran en el array... creo xD

En fin, si pudieran echarme una manito en este tema, se los agradecré muchísimo.

Les dejo el código fuente.

Saludos!

Código PHP:
<?php
    
    
class reuniones{        
        var 
$codigos = array();
        var 
$telefonos = array();
        var 
$emails = array();
        var 
$nombres = array();
        var 
$a;

        function 
addEncargado($cod_encargado$telefono$email$nombre){
            
            
array_push($this->codigos$cod_encargado);
            
array_push($this->telefonos$telefono);
            
array_push($this->emails$email);
            
array_push($this->nombres$nombre);
            
/*
            $this->codigos[] = $cod_encargado;
            $this->telefonos[] = $telefono;
            $this->emails[] = $email;
            $this->nombres[] = $nombre;
            */
        
}

        function 
removeEncargado($cod_encargado){
            
$j=0;
            foreach(
$this->codigos as $cod){    
                if(
$cod == $cod_encargado){
                    
array_splice($this->codigos$j$j);
                    
array_splice($this->telefonos$j$j);
                    
array_splice($this->emails$j$j);
                    
array_splice($this->nombres$j$j);
                }
                
$j++;
            }
        }

        function 
getEncargados(){
            
$cod .= "<table border=3>";
            
$cod .= "<tr>";
            
$cod .= "<td>Nombre</td><td>Codigo Encargado</td><td>Teléfonos</td><td>Emails</td>";
            foreach(
$this->codigos as $valor){
                
$cod .= "<tr>";
                
$cod .= "<td>" current($this->nombres) . "</td>";
                
$cod .= "<td>" $valor "</td>";
                
$cod .= "<td>" current($this->telefonos) . "</td>";
                
$cod .= "<td>" current($this->emails) . "</td>";                
                
$cod .= "</tr>";
                
next($this->emails);
                
next($this->nombres);
                
next($this->telefonos);
            } 
            
$cod .= "</table>";
            return 
$cod;
        }
        

        
    } 
//Fin clase
Código PHP:
     require('clase.php');
    
//instanciamos la clase reuniones
    
$clase_reuniones = new reuniones();
    
$clase_reuniones->addEncargado("100","telefono1","email1","nombre1");
    
$clase_reuniones->addEncargado("101","telefono2","email2","nombre2");
    
$clase_reuniones->addEncargado("102","telefono3","email3","nombre3");
    
$clase_reuniones->addEncargado("103","telefono4","email4","nombre4"); 


Código PHP:
//Desde esta funcion llamo a la clase que ingresa los datos a la clase
// CUERPO.PHP

function agregar_miembro($rut){
        
$sql "SELECT * from viewTrabajadores where rut='" $rut "'";
    
$consulta ejecutar_sql($sql);
    
$row mysql_fetch_array($consulta);
    
    static 
$clase_reuniones;
    
$clase_reuniones $GLOBALS["clase_reuniones"];
    
    
$clase_reuniones->addEncargado$row['rut'], $row['telefono'], $row['email'], $row['nombre'] );    
    
$tabla_seleccionados $clase_reuniones->getEncargados();

        echo 
$tabla_seleccionados;

?>