Ver Mensaje Individual
  #7 (permalink)  
Antiguo 10/06/2012, 05:02
Blashak
 
Fecha de Ingreso: noviembre-2007
Mensajes: 471
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: obtener todos los datos de una tabla

Cita:
Iniciado por elgoncho99 Ver Mensaje
Si, seria correcto.

Las clases estan diseñadas para manejar lo que son, si haces una clase llamada material. cada instancia maneja 1 material solo. Si haces una clase para manejar colecciones, 1 objeto de esa clase hara eso precisamente manejar 1 coleccion de algo.

En el siguiente link

http://ar.php.net/manual/es/class.iterator.php

Es una interfaz la cual tenes que implementar para manejar colecciones de objetos.

Espero te sirva, saludos.

elgoncho99, muchas gracias por la informacion pero no entiendo muy bien como implementarlo.





Código PHP:
Ver original
  1. include('db.php');
  2.  
  3. class material extends DB{
  4.  
  5.     public $id;
  6.     public $nombre;
  7.     public $referencia;
  8.     public $peso;
  9.     public $tamano;
  10.  
  11.     public function __construct($id_material){
  12.    
  13.         $sql= "
  14.             SELECT
  15.                 *
  16.             FROM material
  17.             WHERE id = ".$id_material."
  18.         ";
  19.        
  20.        
  21.         $this->query = $sql;
  22.        
  23.         $t_material  = $this->AssocList();
  24.        
  25.         foreach($t_material as $k => $v){
  26.        
  27.             $this->id = $t_material[$k]['id'];
  28.             $this->nombre = $t_material[$k]['nombre'];
  29.             $this->referencia = $t_material[$k]['referencia'];
  30.             $this->peso = $t_material[$k]['peso'];
  31.             $this->tamano = $t_material[$k]['tamano'];
  32.         }
  33.     }
  34.  
  35. }
  36.  
  37. class MaterialCollection implements Iterator {
  38.  
  39.    private $_items = null;
  40.  
  41.    public function __construct() {
  42.       $this->_material = array();
  43.    }
  44.  
  45.    public function addItem($i){
  46.       $this->_items[] = $i;
  47.    }
  48.  
  49.    public function removeItem($i){
  50.       unset($this->_items[array_search($i, $this->_items)]);
  51.    }
  52.  
  53.    public function rewind() {
  54.        reset($this->_items);
  55.    }
  56.  
  57.    public function current() {
  58.        return current($this->_items);
  59.    }
  60.  
  61.    public function key() {
  62.        return key($this->_items);
  63.    }
  64.  
  65.    public function next() {
  66.        return next($this->_items);
  67.    }
  68.  
  69.    public function valid() {
  70.        return $this->current() !== false;
  71.    }
  72.  
  73. }
  74.  
  75.  
  76. $material = new material(1);
  77.  
  78. echo $material->id;
  79.  
  80. $mc = new MaterialCollection();

ahora que tengo las dos clases, le tengo que pasar tada la informacion de material a la clase MaterialCollection?? o como se hace??
lo que me tendria que devolver MaterialCollection seria toda la informacion de todos los materiales para ponerlo en un listado.

Saludos