# Exámenes - Citas

En este examen se debe crear un programa para que los visitantes puedan proponer citas.

Un ejemplo de programa puede probarse en la ventana siguiente (el ejemplo trabaja con una base de datos SQLite):

Enlace a examen Citas

## Citas - Tablas

Estas pueden ser las consultas de creación de tablas para este examen:

    // Tamaño de los campos
    define('MAX_REG_TABLA', 20);  // Número máximo de registros en la tabla
    $tamAutor =  60; // Tamaño del campo Nombre
    $tamCita  = 250; // Tamaño del campo Apellidos
    $tamCitaTextareaX = 80; // Tamaño X del control de área de texto Cita
    $tamCitaTextareaY =  4; // Tamaño Y del control de área de texto Cita

    // Consultas de creación de tabla en MySQL
    $consulta = "CREATE TABLE $dbTabla (
      id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
      autor VARCHAR($tamAutor),
      cita VARCHAR($tamCita),
      PRIMARY KEY(id)
      )";

    // Consultas de creación de tablas en SQLite
    $consulta = "CREATE TABLE $dbTabla (
      id INTEGER PRIMARY KEY,
      autor VARCHAR($tamAutor),
      cita VARCHAR($tamCita)
      )";

## Citas - Comentarios

- No se podrá guardar un registro sin autor y cita
- No se podrán guardar dos registros iguales.
- Para listar en forma de lista agrupados por autor, hay que hacer dos listas anidadas (para minimizar errores, hay que acordarse de usar variables distintas en cada bucle foreach ($consulta / $consulta2, $result / $result2, $valor / $valor2, etc.):

      // Consulta para sleeccionar los nombres de los autores (sin repeticiones)
      $consulta = "SELECT DISTINCT autor FROM $dbTabla
        ORDER BY autor ASC";

      // Consulta para obtener las citas de un autor determinado
      $consulta2 = "SELECT * FROM $dbTabla
        WHERE autor='$valor[autor]'";

- Si no se consigue el listado en forma de lista, por lo menos que se muestre el listado en forma de tabla.
- Al buscar se buscará tanto en los nombres de autores como en las citas.

Esta obra está bajo una licencia de Creative Commons.