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;
}