# Día 2: Creando un CRUD- Proyecto Bienes Raíces
## Base de datos
Se ha subido a la plataforma el .sql de nuestra base de datos, instálala en tu MySql.
## Creando archivos para CRUD
Vamos a ir creando la estructura para nuestro CRUD

Lo primero es crear una carpeta para nuestro admin y dentro una para guardar los scripts que tratarán con las propiedades.
En todos los php del CRUD vamos a escribir nuestro código base:
```
<?php
require '../../includes/funciones.php';
incluirTemplate('header');
?>
<main class="contenedor seccion">
<h1>Crear</h1>
</main>
<?php
incluirTemplate('footer');
?>
```
Vas a ver que si pruebas esta página los paths no están funcionando...arréglalo.
Dentro de admin, en el index.php vamos a crear el menú del CRUD:
```
<?php
require '../includes/funciones.php';
incluirTemplate('header');
?>
<main class="contenedor seccion">
<h1>Administrador</h1>
<a href="/admin/propiedades/crear.php" class="boton boton-verde">Nueva propiedad</a>
</main>
<?php
incluirTemplate('footer');
?>
```
Al pulsar en nueva propiedad irá al "crear.php" donde necesitaremos un volver para ir de nuevo al administrador.
Completa el menú y agrega el volver en todos los scripts del CRUD.
## Formulario para crear propiedades
Sólo con fijarnos en nuestra base de datos sabremos qué datos necesitamos incluir en la creación de las propiedades. Siguiendo este modelo completa el formulario:
```
<?php
require '../../includes/funciones.php';
incluirTemplate('header');
?>
<main class="contenedor seccion">
<h1>Crear</h1>
<a href="/admin/" class="boton boton-verde">Volver</a>
<form class="formulario" action="">
<fieldset>
<legend> Información General</legend>
<label for="titulo">Título: </label>
<input type="text" id="titulo" placeholder="Título propiedad">
<!-- Continúa generando el formulario mirando los datos que figuran en la base de datos-->
</fieldset>
</form>
</main>
<?php
incluirTemplate('footer');
?>
```
## Conectando a la base de datos
Una vez tenemos el formulario vamos a ir a includes/config/db.php a configurar la conexión a nuestra bd.
Vamos a usar msqli https://www.php.net/manual/es/book.mysqli.php
Investiga en la documentación:
- cuáles son las otras alternativas.
- ventajas y desventajas de cada una.
Una vez entendido lo anterior en includes/config/database.php escribiremos lo siguiente (con los datos específicos de tu base de datos) para hacer una prueba de conexión.
```
<?php
function conectarDB(){
$db= mysqli_connect('localhost','root', '', 'bienesraices_crud');
if ($db) {
echo "se conectó";
} else {
echo "no se conectó";
}
}
```
Prueba a incluir lo que sea necesario y la llamada a esta función en crear.php para comprobar que la conexión está funcionando.
Si cambio el código de database.php por lo siguiente qué es lo que devuelve??:
```
<?php
function conectarDB():mysqli{
$db= mysqli_connect('localhost','root', '', 'bienesraices_crud');
if ($db) {
echo "Error: no se pudo conectar a la base de datos";
exit;
}
return $db;
}
```
## Superglobales $_POST y $_GET
Para entender cómo se pasan parámetros de nuestro formulario a la BD (o a cualquier otra parte del sistema) vamos primero a modificar el formulario de crear.php
```
<form class="formulario" method="GET" action="/admin/propiedades/crear.php">
<fieldset>
<legend> Información General</legend>
<label for="titulo">Título: </label>
<input type="text" id="titulo" placeholder="Título propiedad">
```
Qué nos falta para que se pasen correctamente los parámetros?
Haz pruebas de paso de parámatros con $_GET y $_POST, para qué se utiliza normalmente cada método. Investiga y prueba a mostrar ambas superglobales.
Investiga sobre otras superglobales y muéstralas en pantalla probando varias opciones.
## Creando nuestra primera propiedad en la bd
Esta es la estructura de crear.php para las propiedades.
```
<?php
//Base de datos
require '../../includes/config/database.php';
$db= conectarDB();
if ($_SERVER['REQUEST_METHOD']==='POST'){
// echo "<pre>";
// var_dump($_SERVER);
// var_dump($_POST['titulo']);
// echo "</pre>";
$titulo= $_POST['titulo'];
$precio= $_POST['precio'];
$descripcion= $_POST['descripcion'];
$habitaciones= $_POST['habitaciones'];
$wc= $_POST['wc'];
$estacionamiento= $_POST['estacionamiento'];
$vendedores_id= $_POST['vendedor'];
//ahora es donde realmente insertamos los valores en la bd
$query="INSERT INTO propiedades (titulo, precio, descripcion, habitaciones,wc,estacionamiento, vendedores_id)
VALUES ('$titulo', '$precio', '$descripcion', '$habitaciones','$wc','$estacionamiento', '$vendedores_id')";
//echo $query;
$resultado=mysqli_query($db,$query);
if ($resultado) {
echo "Insertado correctamente";
}
}
require '../../includes/funciones.php';
incluirTemplate('header');
?>
```
Investiga y siguiendo las mismas ideas desarrolladas genera el código necesario para crear un nuevo vendedor.