Agenda de citas médicas – 6 . Consultar Actualizar y Eliminar Citas

Siguiendo con el CRUD pero ahora para “Citas” agregaremos el menú de estas funciones, en la parte superior de nuestra función “registro_cita.php” como lo hicimos anteriormente a “pacientes” colocando en la línea 9, después de la etiqueta de body el siguiente código:
<div class="menu-container">
<div class="menu-category">
<h2>Menú de Citas</h2>
<a href="registro_cita.html">
<img src="imagen_registrar.png" alt="Registrar Cita" width="40">
</br><span>Registrar</span>
</a>
<a href="consultar_cita.php">
<img src="imagen_consultar.png" alt="Consultar Cita" width="40">
</br><span>Consultar</span>
</a>
<a href="actualizar_cita.php">
<img src="imagen_actualizar.png" alt="Actualizar Cita" width="40">
</br><span>Actualizar</span>
</a>
<a href="borrar_cita.php">
<img src="imagen_borrar.png" alt="Borrar Cita" width="40">
</br><span>Borrar</span>
</a>
</div>
</div>
Queda la vista previa de la siguiente manera:

El código completo queda así:
<!DOCTYPE html>
<html lang="es">
<head>
<link rel="stylesheet" type="text/css" href="estilos.css">
<meta charset="UTF-8">
<title>Registro de Citas Médicas</title>
</head>
<body>
<div class="menu-container">
<div class="menu-category">
<h2>Menú de Citas</h2>
<a href="registro_cita.php">
<img src="imagen_registrar.png" alt="Registrar Cita" width="40">
</br><span>Registrar</span>
</a>
<a href="consultar_cita.php">
<img src="imagen_consultar.png" alt="Consultar Cita" width="40">
</br><span>Consultar</span>
</a>
<a href="actualizar_cita.php">
<img src="imagen_actualizar.png" alt="Actualizar Cita" width="40">
</br><span>Actualizar</span>
</a>
<a href="borrar_cita.php">
<img src="imagen_borrar.png" alt="Borrar Cita" width="40">
</br><span>Borrar</span>
</a>
</div>
</div>
<h1>Registro de Cita Médica</h1>
<form action="procesar_cita.php" method="post">
<label for="paciente_id">ID del Paciente:</label>
<input type="text" id="paciente_id" name="paciente_id">
<br>
<label for="fecha">Fecha:</label>
<input type="date" id="fecha" name="fecha">
<br>
<label for="hora">Hora:</label>
<input type="time" id="hora" name="hora">
<br>
<label for="nota">Nota:</label>
<textarea id="nota" name="nota" rows="4" cols="50"></textarea>
<br>
<input type="submit" value="Registrar Cita">
</form>
</body>
</html>
Hasta el momento también agregamos el pequeño menú a:
- confirmacion_cita.php

Antes de continuar, confirma que el código de “menu.php” sea el siguiente:
<!DOCTYPE html>
<html lang="es">
<head>
<link rel="stylesheet" type="text/css" href="estilos.css">
<meta charset="UTF-8">
<title>Menú de Gestión</title>
</head>
<body>
<h1>Menú de Gestión</h1>
<div class="menu-container">
<div class="menu-category">
<h2>Pacientes</h2>
<a href="registrar-paciente.php">
<img src="imagen_registrar.png" alt="Registrar Paciente" width="128">
</br><span>Registrar</span>
</a>
<a href="consultar_paciente.php">
<img src="imagen_consultar.png" alt="Consultar Paciente" width="128">
</br><span>Consultar</span>
</a>
<a href="actualizar_paciente.php">
<img src="imagen_actualizar.png" alt="Actualizar Paciente" width="128">
</br><span>Actualizar</span>
</a>
<a href="borrar_paciente.php">
<img src="imagen_borrar.png" alt="Borrar Paciente" width="128">
</br><span>Borrar</span>
</a>
</div>
<div class="menu-category">
<h2>Citas</h2>
<a href="registro_cita.php">
<img src="imagen_registrar.png" alt="Registrar Cita" width="128">
</br><span>Registrar</span>
</a>
<a href="consultar_cita.php">
<img src="imagen_consultar.png" alt="Consultar Cita" width="128">
</br><span>Consultar</span>
</a>
<a href="actualizar_cita.php">
<img src="imagen_actualizar.png" alt="Actualizar Cita" width="128">
</br><span>Actualizar</span>
</a>
<a href="borrar_cita.php">
<img src="imagen_borrar.png" alt="Borrar Cita" width="128">
</br><span>Borrar</span>
</a>
</div>
</div>
</body>
</html>
Para crear una página para consultar citas médicas (consultar_cita.php) siguiendo una estructura similar a la página de consulta de pacientes, puedes utilizar el siguiente código:
<!DOCTYPE html>
<html lang="es">
<head>
<link rel="stylesheet" type="text/css" href="estilos.css">
<meta charset="UTF-8">
<title>Consultar Citas Médicas</title>
</head>
<body>
<div class="menu-container">
<div class="menu-category">
<h2>Menú para Citas Médicas</h2>
<a href="registro_cita.php">
<img src="imagen_registrar.png" alt="Registrar Cita" width="40">
</br><span>Registrar</span>
</a>
<a href="consultar_cita.php">
<img src="imagen_consultar.png" alt="Consultar Cita" width="40">
</br><span>Consultar</span>
</a>
<a href="actualizar_cita.php">
<img src="imagen_actualizar.png" alt="Actualizar Cita" width="40">
</br><span>Actualizar</span>
</a>
<a href="borrar_cita.php">
<img src="imagen_borrar.png" alt="Borrar Cita" width="40">
</br><span>Borrar</span>
</a>
</div>
</div>
<h1>Consulta de Citas Médicas</h1>
<div class="consulta-container">
<?php
// Conectar a la base de datos
$conexion = mysqli_connect("localhost", "arci", "123", "citas_medicas");
// Consultar la tabla de citas médicas
$consulta = "SELECT citas.id, pacientes.nombre, pacientes.apellido, citas.fecha, citas.hora, citas.nota FROM citas INNER JOIN pacientes ON citas.paciente_id = pacientes.id";
$result = mysqli_query($conexion, $consulta);
if (mysqli_num_rows($result) > 0) {
echo "<table class='citas-table'>";
echo "<tr>";
echo "<th>ID Cita</th>";
echo "<th>Nombre Paciente</th>";
echo "<th>Fecha</th>";
echo "<th>Hora</th>";
echo "<th>Nota</th>";
echo "<th>Acciones</th>"; // Nueva columna para acciones
echo "</tr>";
while ($row = mysqli_fetch_assoc($result)) {
echo "<tr>";
echo "<td>{$row['id']}</td>";
echo "<td>{$row['nombre']} {$row['apellido']}</td>";
echo "<td>{$row['fecha']}</td>";
echo "<td>{$row['hora']}</td>";
echo "<td>{$row['nota']}</td>";
echo "<td>";
echo "<a href='actualizar_cita.php?id={$row['id']}'><img src='imagen_actualizar.png' alt='Actualizar' width='48'></a>";
echo "<a href='borrar_cita.php?id={$row['id']}'><img src='imagen_borrar.png' alt='Borrar' width='48'></a>";
echo "</td>";
echo "</tr>";
}
echo "</table>";
} else {
echo "No hay citas médicas registradas en la base de datos.";
}
// Cerrar la conexión a la base de datos
mysqli_close($conexion);
?>
</div>
</body>
</html>

Agrega los siguientes estilos CSS a tu archivo:
/* Estilo para la tabla de consulta de citas médicas */
.citas-table {
width: 95%;
border-collapse: collapse;
margin: 20px auto;
box-shadow: 0px 0px 10px #AAAAAA;
background-color: #FFFFFF;
}
.citas-table th, .citas-table td {
border: 1px solid #AAAAAA;
padding: 10px;
text-align: left;
}
.citas-table th {
background-color: #0070C0; /* Cambia el color de fondo de las cabeceras de la tabla */
color: #FFFFFF;
}
.citas-table tr:nth-child(even) {
background-color: #F5F5F5;
}
.citas-table tr:nth-child(odd) {
background-color: #FFFFFF;
}
Actualizar Citas Médicas
Aquí tienes el código para actualizar_cita.php basado en el código que creamos anteriormente para Pacientes:
<!DOCTYPE html>
<html lang="es">
<head>
<link rel="stylesheet" type="text/css" href="estilos.css">
<meta charset="UTF-8">
<title>Actualizar Cita Médica</title>
</head>
<body>
<div class="menu-container">
<div class="menu-category">
<h2>Menú para Citas Médicas</h2>
<a href="registrar_cita.php">
<img src="imagen_registrar.png" alt="Registrar Cita" width="40">
<br><span>Registrar</span>
</a>
<a href="consultar_cita.php">
<img src="imagen_consultar.png" alt="Consultar Cita" width="40">
<br><span>Consultar</span>
</a>
<a href="actualizar_cita.php">
<img src="imagen_actualizar.png" alt="Actualizar Cita" width="40">
<br><span>Actualizar</span>
</a>
<a href="borrar_cita.php">
<img src="imagen_borrar.png" alt="Borrar Cita" width="40">
<br><span>Borrar</span>
</a>
</div>
</div>
<h1>Actualizar Cita Médica</h1>
<?php
// Conectar a la base de datos
$conexion = mysqli_connect("localhost", "arci", "123", "citas_medicas");
// Consultar la lista de IDs de citas médicas
$consulta_ids = "SELECT id FROM citas";
$result_ids = mysqli_query($conexion, $consulta_ids);
// Verificar si se proporciona un ID en la URL
if (isset($_GET['id'])) {
$id = $_GET['id'];
// Consultar la información de la cita médica con el ID proporcionado
$consulta = "SELECT paciente_id, fecha, hora, nota FROM citas WHERE id = $id";
$result = mysqli_query($conexion, $consulta);
if ($row = mysqli_fetch_assoc($result)) {
// Mostrar el formulario con los datos de la cita médica
echo "<form action='procesar_actualizar_cita.php' method='post'>";
echo "<input type='hidden' name='id' value='$id'>";
echo "<label for='paciente_id'>ID del Paciente:</label>";
echo "<input type='text' id='paciente_id' name='paciente_id' value='{$row['paciente_id']}'>";
echo "<br>";
echo "<label for='fecha'>Fecha:</label>";
echo "<input type='date' id='fecha' name='fecha' value='{$row['fecha']}'>";
echo "<br>";
echo "<label for='hora'>Hora:</label>";
echo "<input type='time' id='hora' name='hora' value='{$row['hora']}'>";
echo "<br>";
echo "<label for='nota'>Nota:</label>";
echo "<textarea id='nota' name='nota'>{$row['nota']}</textarea>";
echo "<br>";
echo "<input type='submit' value='Actualizar'>";
echo "</form>";
} else {
echo "Cita médica no encontrada.";
}
} else {
echo "<form action='actualizar_cita.php' method='get'>";
echo "<label for='id'>Seleccione el ID de la cita médica:</label>";
echo "<select id='id' name='id'>";
while ($row = mysqli_fetch_assoc($result_ids)) {
echo "<option value='{$row['id']}'>{$row['id']}</option>";
}
echo "</select>";
echo "<input type='submit' value='Seleccionar'>";
echo "</form>";
}
// Cerrar la conexión a la base de datos
mysqli_close($conexion);
?>
</body>
</html>
Este código proporciona una estructura similar a la de la página de actualización de pacientes, pero adaptada para citas médicas. Asegúrate de ajustar los nombres de los campos y las consultas SQL según la estructura de tu base de datos de citas médicas.
Aquí tienes el código para procesar_actualizar_cita.php, basado en el código que creamos para los pacientes:
<!DOCTYPE html>
<html lang="es">
<head>
<link rel="stylesheet" type="text/css" href="estilos.css">
<meta charset="UTF-8">
<title>Procesar Actualización de Cita Médica</title>
</head>
<body>
<div class="menu-container">
<div class="menu-category">
<h2>Menú para Citas Médicas</h2>
<a href="registrar_cita.php">
<img src="imagen_registrar.png" alt="Registrar Cita" width="40">
<br><span>Registrar</span>
</a>
<a href="consultar_cita.php">
<img src="imagen_consultar.png" alt="Consultar Cita" width="40">
<br><span>Consultar</span>
</a>
<a href="actualizar_cita.php">
<img src="imagen_actualizar.png" alt="Actualizar Cita" width="40">
<br><span>Actualizar</span>
</a>
<a href="borrar_cita.php">
<img src="imagen_borrar.png" alt="Borrar Cita" width="40">
<br><span>Borrar</span>
</a>
</div>
</div>
<?php
// Verificar si se ha enviado el formulario
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$id = $_POST["id"];
$paciente_id = $_POST["paciente_id"];
$fecha = $_POST["fecha"];
$hora = $_POST["hora"];
$nota = $_POST["nota"];
// Conectar a la base de datos
$conexion = mysqli_connect("localhost", "arci", "123", "citas_medicas");
// Actualizar los datos de la cita médica en la tabla citas
$sql = "UPDATE citas SET paciente_id = '$paciente_id', fecha = '$fecha', hora = '$hora', nota = '$nota' WHERE id = $id";
if (mysqli_query($conexion, $sql)) {
echo "<div class='success-message'>Los datos de la cita médica se han actualizado correctamente.</div>";
} else {
echo "<div class='error-message'>Error al actualizar los datos de la cita médica: " . mysqli_error($conexion) . "</div>";
}
// Cerrar la conexión a la base de datos
mysqli_close($conexion);
} else {
// Si se accede directamente a este archivo sin enviar el formulario, redirigir a la página de selección de citas médicas
header("Location: actualizar_cita.php");
}
?>
</body>
</html>


Borrar Citas Médicas
Aquí tienes el código para borrar_cita.php, basado en el código que creamos para los pacientes:
<!DOCTYPE html>
<html lang="es">
<head>
<link rel="stylesheet" type="text/css" href="estilos.css">
<meta charset="UTF-8">
<title>Borrar Cita Médica</title>
</head>
<body>
<div class="menu-container">
<div class="menu-category">
<h2>Menú para Citas Médicas</h2>
<a href="registrar_cita.php">
<img src="imagen_registrar.png" alt="Registrar Cita" width="40">
<br><span>Registrar</span>
</a>
<a href="consultar_cita.php">
<img src="imagen_consultar.png" alt="Consultar Cita" width="40">
<br><span>Consultar</span>
</a>
<a href="actualizar_cita.php">
<img src="imagen_actualizar.png" alt="Actualizar Cita" width="40">
<br><span>Actualizar</span>
</a>
<a href="borrar_cita.php">
<img src="imagen_borrar.png" alt="Borrar Cita" width="40">
<br><span>Borrar</span>
</a>
</div>
</div>
<h1>Borrar Cita Médica</h1>
<?php
// Conectar a la base de datos
$conexion = mysqli_connect("localhost", "arci", "123", "citas_medicas");
// Consultar la lista de IDs de citas médicas
$consulta_ids = "SELECT id FROM citas";
$result_ids = mysqli_query($conexion, $consulta_ids);
// Verificar si se proporciona un ID en la URL o se ha seleccionado uno desde la lista desplegable
if (isset($_GET['id']) || isset($_POST['id'])) {
// Verificar si se ha enviado el formulario para borrar la cita médica
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$id = isset($_POST['id']) ? $_POST['id'] : $_GET['id'];
// Realizar la eliminación de la cita médica
$sql = "DELETE FROM citas WHERE id = $id";
if (mysqli_query($conexion, $sql)) {
echo "<div class='success-message'>La cita médica ha sido eliminada correctamente.</div>";
} else {
echo "<div class='error-message'>Error al eliminar la cita médica: " . mysqli_error($conexion) . "</div>";
}
} else {
$id = isset($_POST['id']) ? $_POST['id'] : $_GET['id'];
// Consultar la información de la cita médica con el ID proporcionado
$consulta = "SELECT pacientes.nombre, pacientes.apellido, citas.fecha FROM citas INNER JOIN pacientes ON citas.paciente_id = pacientes.id WHERE citas.id = $id";
$result = mysqli_query($conexion, $consulta);
if ($row = mysqli_fetch_assoc($result)) {
// Mostrar el formulario de confirmación
echo "<p style='text-align: center;'>¿Seguro que desea borrar la cita médica de {$row['nombre']} {$row['apellido']} el {$row['fecha']}?</p>";
echo "<form action='borrar_cita.php' method='post'>";
echo "<input type='hidden' name='id' value='$id'>";
echo "<div style='text-align: center;'><input type='submit' value='Confirmar Borrar'></div>";
echo "</form>";
} else {
echo "Cita médica no encontrada.";
}
}
} else {
// Mostrar la lista desplegable para seleccionar la cita médica a borrar
echo "<form action='borrar_cita.php' method='get'>";
echo "<label for='id'>Seleccione el ID de la cita médica a borrar:</label>";
echo "<select id='id' name='id'>";
while ($row = mysqli_fetch_assoc($result_ids)) {
// Consultar el nombre y fecha de la cita médica
$id_cita = $row['id'];
$consulta_info_cita = "SELECT pacientes.nombre, pacientes.apellido, citas.fecha FROM citas INNER JOIN pacientes ON citas.paciente_id = pacientes.id WHERE citas.id = $id_cita";
$result_info_cita = mysqli_query($conexion, $consulta_info_cita);
$info_cita = mysqli_fetch_assoc($result_info_cita);
echo "<option value='$id_cita'>" . $id_cita . ' - ' . $info_cita['nombre'] . ' ' . $info_cita['apellido'] . ' - ' . $info_cita['fecha'] . "</option>";
}
echo "</select>";
echo "<input type='submit' value='Seleccionar'>";
echo "</form>";
}
// Cerrar la conexión a la base de datos
mysqli_close($conexion);
?>
</body>
</html>
.


Este código permite borrar una cita médica y muestra un mensaje de éxito o error según el resultado de la eliminación. Asegúrate de ajustar los nombres de los campos y las consultas SQL según la estructura de tu base de datos de citas médicas.
Los códigos proporcionados para el CRUD (Crear, Leer, Actualizar y Borrar) de pacientes y citas médicas en el blog presentan las siguientes funciones:
Para el CRUD de Pacientes:
- Registrar Paciente (registrar-paciente.html): Permite a los usuarios ingresar información como nombre, apellido, email y teléfono de un paciente y lo almacena en la base de datos de pacientes.
- Consultar Paciente (consultar_paciente.php): Recupera la lista de pacientes almacenados en la base de datos y muestra sus detalles, incluyendo nombre, apellido, email y teléfono en una tabla. Los usuarios también pueden seleccionar un paciente para actualizar o borrar.
- Actualizar Paciente (actualizar_paciente.php): Proporciona un formulario que permite a los usuarios actualizar la información de un paciente seleccionado. Los campos de nombre, apellido, email y teléfono se llenan con los datos actuales del paciente, y al enviar el formulario, se actualizan los datos en la base de datos.
- Borrar Paciente (borrar_paciente.php): Ofrece la opción de seleccionar un paciente para borrar. Proporciona un formulario de confirmación para evitar eliminaciones accidentales.
Para el CRUD de Citas Médicas:
- Registrar Cita Médica (registro_cita.php): Permite a los usuarios registrar nuevas citas médicas. Los usuarios ingresan la fecha, hora, nota y seleccionan un paciente existente de la base de datos. Los datos se almacenan en la tabla de citas médicas.
- Consultar Cita Médica (consultar_cita.php): Recupera la lista de citas médicas almacenadas en la base de datos y muestra sus detalles, incluyendo el ID de la cita, nombre del paciente, fecha, hora y nota en una tabla. Además, proporciona opciones para actualizar o borrar citas médicas seleccionadas.
- Actualizar Cita Médica (actualizar_cita.php): Permite a los usuarios seleccionar una cita médica para actualizar. Proporciona un formulario para modificar la fecha, hora y nota de la cita seleccionada.
- Borrar Cita Médica (borrar_cita.php): Brinda la opción de seleccionar una cita médica para borrar. Proporciona un formulario de confirmación para evitar eliminaciones accidentales.
Estas funciones juntas forman un sistema de gestión de pacientes y citas médicas, lo que facilita el mantenimiento de registros y la interacción con la base de datos de pacientes y citas médicas. Este sistema puede ser útil para hospitales, clínicas o profesionales de la salud para administrar sus datos de pacientes y programar citas médicas de manera eficiente.
