El archivo 'datoseventos.php' tiene por objetivo permitir la registración de comidas para una determinada fecha, su eliminación y finalmente la recuperación de las comidas para que se muestren en el calendario.
datoseventos.php<?php header('Content-Type: application/json'); require("conexion.php"); $conexion = retornarConexion(); switch ($_GET['accion']) { case 'listar': $datos = mysqli_query($conexion, "select codigo as id, titulo as title, inicio as start, fin as end from eventoscomida"); $resultado = mysqli_fetch_all($datos, MYSQLI_ASSOC); echo json_encode($resultado); break; case 'agregar': $archi = $_FILES['Archivo']['name']; $ext = pathinfo($archi, PATHINFO_EXTENSION); if ($ext == 'jpg') { $fechahora = $_POST['FechaInicio'] . ' ' . $_POST['HoraInicio']; $respuesta = mysqli_query($conexion, "insert into eventoscomida(titulo,inicio,fin) values('$_POST[Titulo]','$fechahora',date_add('$fechahora', interval 15 minute))"); $valor = mysqli_insert_id($conexion); move_uploaded_file($_FILES['Archivo']['tmp_name'], 'fotos/' . $valor . '.' . $ext); echo json_encode($respuesta); } else echo "error"; break; case 'borrar': $respuesta = mysqli_query($conexion, "delete from eventoscomida where codigo=$_GET[codigo]"); echo json_encode($respuesta); break; }
Desde la página 'index.html' se inicializa la propiedad 'events' del calendario:
events: 'datoseventos.php?accion=listar',
Luego significa que se llamará a la página 'datoseventos.php' pasando como parámetro GET la cadena 'listar'. Luego se ejecuta el primer case del switch:
case 'listar': $datos = mysqli_query($conexion, "select codigo as id, titulo as title, inicio as start, fin as end from eventoscomida"); $resultado = mysqli_fetch_all($datos, MYSQLI_ASSOC); echo json_encode($resultado); break;
Como vemos procedemos a recuperar el código, título, feha y hora de inicio y fin del evento de la tabla 'eventoscomida'.
Cuando desde la página 'index.html' se presiona el botón de agregar una comida se ejecutará el case de 'agregar':
case 'agregar': $archi = $_FILES['Archivo']['name']; $ext = pathinfo($archi, PATHINFO_EXTENSION); if ($ext == 'jpg') { $fechahora = $_POST['FechaInicio'] . ' ' . $_POST['HoraInicio']; $respuesta = mysqli_query($conexion, "insert into eventoscomida(titulo,inicio,fin) values('$_POST[Titulo]','$fechahora',date_add('$fechahora', interval 15 minute))"); $valor = mysqli_insert_id($conexion); move_uploaded_file($_FILES['Archivo']['tmp_name'], 'fotos/' . $valor . '.' . $ext); echo json_encode($respuesta); } else echo "error"; break;
Lo primero que hacemos es recupear la extensión del archivo subido al servidor y proceder a ver si es de tipo 'jpg':
$archi = $_FILES['Archivo']['name']; $ext = pathinfo($archi, PATHINFO_EXTENSION); if ($ext == 'jpg') {
En caso afirmativo procedemos mediante la función 'move_uploaded_file' a almacenarlo en la subcarpeta 'fotos' y le damos como nombre el 'id' que se genera automáticamente en la tabla 'eventoscomida'.
Finalmente cuando se borra una comida del calendario se ejecuta el bloque:
case 'borrar': $respuesta = mysqli_query($conexion, "delete from eventoscomida where codigo=$_GET[codigo]"); echo json_encode($respuesta); break;
Tengamos en cuenta que tenemos un tercer archivo que nos retorna la conexión a la base de datos.
conexion.php<?php function retornarConexion() { $server="localhost"; $usuario="root"; $clave=""; $base="base1"; $con=mysqli_connect($server,$usuario,$clave,$base) or die("problemas") ; mysqli_set_charset($con,'utf8'); return $con; }