Foros del Web » Programando para Internet » PHP »

seteo de muchos atributos en una clase (como?)

Estas en el tema de seteo de muchos atributos en una clase (como?) en el foro de PHP en Foros del Web. Hola a todos, resulta que tengo una tabla de la base de datos (la principal) que tiene facil 25 columnas, las cuales necesito setear todas ...
  #1 (permalink)  
Antiguo 16/09/2011, 22:23
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
seteo de muchos atributos en una clase (como?)

Hola a todos, resulta que tengo una tabla de la base de datos (la principal) que tiene facil 25 columnas, las cuales necesito setear todas para luego mostrar los datos.
Yo arme una clase en la cual escribi esta funcion estatica

Código PHP:
public static function setEjemplar($tomo,$folio,PDO $conn){
        
$sql "SELECT * from publeje where tomo = ? and folio = ?";
        
$stmt $conn->prepare($sql);
        
$stmt->bindParam(1,$tomo,PDO::PARAM_INT);
        
$stmt->bindParam(2,$folio,PDO::PARAM_INT);
        
$stmt->execute();
        
$data $stmt->fetch(PDO::FETCH_ASSOC);
        
$conn null;
        
$e = new ejemplares();
        
$e->setTomo($data['tomo']);  //seteo de propiedad
        
$e->setFolio($data['folio']);  // seteo de otra propiedad 
                //  .......................>  aca seguiria asi hasta llegar las 25
            
return $e;
    } 
ahora mi pregunta es, no hay alguna forma en estos casos que son muchos atributos que hay que setear para hacerlo con algun bucle o algo ??

saludos y gracias..
  #2 (permalink)  
Antiguo 17/09/2011, 02:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: seteo de muchos atributos en una clase (como?)

Claro que se puede hacer con un bucle, solo usa tu ingenio.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 17/09/2011, 07:17
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Respuesta: seteo de muchos atributos en una clase (como?)

ajaj, alguna ayudita porque no le encuentro la vuelta para poder poner los nombres y despues el valor que da de la select cada columna. osea $e->xxxx['dato'];

Saludos.
  #4 (permalink)  
Antiguo 17/09/2011, 09:28
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: seteo de muchos atributos en una clase (como?)

Si $data es un arreglo quizas esto te pueda servir...
Código PHP:
Ver original
  1. <?php
  2.  
  3. class Persona
  4. {
  5.     private $_nombre;
  6.  
  7.     private $_apellido;
  8.  
  9.  
  10.  
  11.     public function setNombre($nombre)
  12.     {
  13.         $this->_nombre = $nombre;
  14.     }
  15.  
  16.     public function setApellido($apellido)
  17.     {
  18.         $this->_apellido = $apellido;
  19.     }
  20.  
  21.     public function setFunction($clave, $valor)
  22.     {
  23.         $funcion = 'set' . ucwords($clave);
  24.         $this->$funcion($valor);
  25.  
  26.     }
  27. }
  28.  
  29.  
  30. $data = array('nombre' => 'Juan',
  31.               'apellido' => 'Perez');
  32.  
  33. $usr = new Persona();
  34. foreach($data as $clave => $valor) {
  35.     $usr->setFunction($clave, $valor);
  36. }
  37.  
  38. echo '<pre>';
  39. var_dump($usr);
  40. echo '</pre>';

Ten cuidado con la seguridad, pero por ahí podría andar...

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp
  #5 (permalink)  
Antiguo 17/09/2011, 09:50
 
Fecha de Ingreso: abril-2009
Mensajes: 409
Antigüedad: 15 años
Puntos: 3
Respuesta: seteo de muchos atributos en una clase (como?)

si eso podria hacerce , voy a probar a ver que sale.

Gracias.
  #6 (permalink)  
Antiguo 17/09/2011, 10:00
Avatar de portalmana  
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 6 meses
Puntos: 80
Respuesta: seteo de muchos atributos en una clase (como?)

También podrías obviar setFunction en la clase haciéndolo directamente desde el foreach...

Pero quizás por alguna particularidad te sirva antes controlar algo...

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp

Etiquetas: atributos, clase, muchos, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:33.