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.