# Día 4, Bienes Raíces-POO: Consultando la Base de datos para obtener todas las propiedades
Vamos a cambiar el index del admin para que muestre los registros usando nuestra clase.
Lo primero es incluir el `use App\Propiedad` y ya podemos usar los métodos del objeto.
Luego seleccionaremos todas las propiedades, además será otro método static ya que realmente no variará en cada instancia.
Vamos a la clase Propiedad y creamos el siguiente método:
```
public static function all(){
$query = "SELECT * FROM propiedades";
$resultado= self::$db->query($query);
debuguear($resultado->fetch_assoc());
}
```
Lo llamamos desde el index del admin:
`$propiedades=Propiedad::all();`
Veremos que nos da el resultado pero en forma de vector asociativo, en active record necesitamos tener un objeto.
Cómo lo hacemos?
```
public static function all() {
$query = "SELECT * FROM propiedades";
$resultado=self::consultarSQL($query);
return $resultado;
}
public static function consultarSQL($query){
//Consultar la base de datos
$resultado=self::$db->query($query);
//iterar los resultados
$array=[];
while ($registro=$resultado->fetch_assoc()){
$array[]=self::crearObjeto($registro);
}
debuguear($array);
//liberar la memoria
//devolver resultados
}
protected static function crearObjeto($registro){
$objeto=new self;
foreach ($registro as $key =>$value){
if (property_exists($objeto,$key)){
$objeto->$key=$value;
}
}
return $objeto;
}
```
Ves que hemos colocado un debuguear a la salida del while de consultarSQL, nos va a devolver un array de objetos, tal y como sigue:
```
array(5) {
[0]=>
object(App\Propiedad)#5 (10) {
["id"]=>
string(2) "17"
["titulo"]=>
string(35) "Para cirujanos plásticos sin moral"
["precio"]=>
string(11) "20000000.00"
["imagen"]=>
string(36) "4b5292359d21238e519f126b1ae631ae.jpg"
["descripcion"]=>
string(226) "Con espacio para montar tu clínica ilegal y que tus clientes puedan decir que volvieron más bellas y con menos nariz después de sus vacaciones de un mes en las Maldivas. Todo bien pensado para que sea un lucrativo negocio. "
["habitaciones"]=>
string(2) "15"
["wc"]=>
string(2) "15"
["estacionamiento"]=>
string(1) "7"
["creado"]=>
string(10) "2023-10-13"
["vendedores_id"]=>
string(1) "1"
}
[1]=>
object(App\Propiedad)#6 (10) {
["id"]=>
string(2) "18"
["titulo"]=>
string(15) "nueva propiedad"
["precio"]=>
string(7) "3333.00"
["imagen"]=>
string(10) "imagen.jpg"
["descripcion"]=>
string(90) "nueva propiedadnueva propiedadnueva propiedadnueva propiedadnueva propiedadnueva propiedad"
["habitaciones"]=>
string(1) "1"
["wc"]=>
string(1) "1"
["estacionamiento"]=>
string(1) "1"
["creado"]=>
string(10) "2023-11-28"
["vendedores_id"]=>
string(1) "1"
}
[2]=>
object(App\Propiedad)#7 (10) {
["id"]=>
string(2) "20"
["titulo"]=>
string(17) "nueva propiedad's"
["precio"]=>
string(7) "3333.00"
["imagen"]=>
string(36) "f35adbecdf52e808f902ccf0570bbe22.jpg"
["descripcion"]=>
string(119) "nueva propiedad'snueva propiedad'snueva propiedad'snueva propiedad'snueva propiedad'snueva propiedad'snueva propiedad's"
["habitaciones"]=>
string(1) "1"
["wc"]=>
string(1) "1"
["estacionamiento"]=>
string(1) "1"
["creado"]=>
string(10) "2023-11-30"
["vendedores_id"]=>
string(1) "1"
}
[3]=>
object(App\Propiedad)#8 (10) {
["id"]=>
string(2) "21"
["titulo"]=>
string(17) "nueva propiedad's"
["precio"]=>
string(8) "33333.00"
["imagen"]=>
string(36) "be9987cf485d3c9a62a221798f5bffe9.jpg"
["descripcion"]=>
string(102) "nueva propiedad'snueva propiedad'snueva propiedad'snueva propiedad'snueva propiedad'snueva propiedad's"
["habitaciones"]=>
string(1) "1"
["wc"]=>
string(1) "2"
["estacionamiento"]=>
string(1) "1"
["creado"]=>
string(10) "2023-12-01"
["vendedores_id"]=>
string(1) "1"
}
```
Investiga las instrucciones que no sabes y explica en clase cómo se ha conseguido?
En el consularSQL ves que estamos creadon un objeto por cada propiedad en la base de datos, tenemos que liberar la memoria y retornar los resultados para poder mostrarlos:
Si ejecutas ahora mismo el index dará el siguiente erorr:

Porque en el index el código para mostrar está esperando un vector asociativo y ahora mismo lo que tenemos es un vector de objetos así que en el index.php lo cambiamos para manejo de objetos:
```
<?php foreach ($propiedades as $propiedad):?>
<tr>
<td><?php echo $propiedad->id; ?></td>
<td><?php echo $propiedad->titulo; ?></td>
<td>
<img src="/imagenes/<?php echo $propiedad->imagen; ?>" width="100" class="imagen-tabla">
</td>
<td>$ <?php echo $propiedad->precio; ?></td>
<td>
<form method="POST">
<input type="hidden" name="id_eliminar" value="<?php echo $propiedad->id; ?>">
<input type="submit" href="/admin/propiedades/borrar.php" class="boton boton-rojo" value="Borrar">
</form>
<a href="/admin/propiedades/actualizar.php?id=<?php echo $propiedad->id; ?>" class="boton boton-verde">Actualizar</a>
</td>
</tr>
<?php endforeach; ?>
```