Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/02/2014, 05:45
Avatar de Tokkara
Tokkara
 
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: Array de objetos sobrescribe los datos anteriores!!

Eso se debe a que solo creas un objeto de la clase productUnit. Tienes que crear un objeto por cada fila de la tabla. Básicamente estás guardando el mismo objeto en cada celda del array y remplazando sus datos una y otra vez. Prueba así.
Código PHP:
Ver original
  1. function getAllProducts() {
  2.     global $connexio;
  3.    
  4.     $query = "SELECT * FROM product_unit;";
  5.     $result = mysqli_query($connexio, $query);
  6.     $i = 0;
  7.     $products = array();
  8.     while ($row = mysqli_fetch_row($result)) {
  9.         $product = new productUnit();
  10.  
  11.         $product -> setId($row[0]);
  12.         $product -> setSerial($row[1]);
  13.         $product -> setStock($row[2]);
  14.         $product -> setWarranty($row[3]);
  15.         $product -> setRentalPrice($row[4]);
  16.         $product -> setPurchasePrice($row[5]);
  17.         $product -> setPurchaseDate($row[6]);
  18.         $product -> setProductBox($row[7]);
  19.         $product -> setProductTemplate($row[8]);
  20.         $product -> setCloset($row[9]);
  21.         $products[$i] = $product;
  22.         $i++;
  23.        
  24.     }
  25.  
  26.    
  27.     return $products;
  28. }

Ahora se crea en la variable $product un objeto nuevo por cada vuelta al bucle. Y por tanto en el array se guardará un objeto distinto cada vez.
__________________
Revolucionario controlador de plantillas para php
www.simphple.com