# Exámenes - Mola más

En este examen se debe crear un programa para que los visitantes puedan proponer términos y votar por los que prefieran.

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

Enlace a examen Mola más

## Mola más - Tablas

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

    // Tamaño de los campos
    define('TAM_TERMINO',       50);   // Tamaño del campo Termino
    define('MAX_REG_TERMINOS', 200);   // Número máximo de registros en la tabla Términos
    define('TAM_MED_LISTADO',    2);   // Tamaño medio de los términos al listar
    define('TAM_MIN_LISTADO',    0.5); // Tamaño mínimo de los términos al listar

    // Consultas de creación de tabla en MySQL
    $consulta = "CREATE TABLE $dbTerminos (
        id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
        termino VARCHAR(".TAM_TERMINO."),
        votos INTEGER UNSIGNED,
        PRIMARY KEY(id)
        )";

    // Consultas de creación de tablas en SQLite
    $consulta = "CREATE TABLE $dbTerminos (
        id INTEGER PRIMARY KEY,
        termino VARCHAR(".TAM_TERMINO."),
        votos INTEGER UNSIGNED
        )";

## Mola más - Comentarios

- No se podrán guardar dos términos iguales.
- Los valores introducidos por el usuario se deben comprobar y, si los valores no son correctos, se debe indicar el motivo al usuario. Ejemplos de comprobaciones:
  - El término es una única palabra.
  - El término sólo inlcuye letras.
- Al crear el registro del término se le asignará un voto.
- El tamaño de cada término tiene que ser proporcional al número de votos. Por ejemplo, de esta manera:

      // Consulta para saber el número de registros
      $consulta = "SELECT COUNT(*) FROM $dbTerminos";

      // Consulta para saber el total de votos realizados
      $consulta = "SELECT sum(votos) as total FROM $dbTerminos";

      $mediaVotos = $totalVotos/$registros;
      $tamanyo = TAM_MIN_LISTADO+round($valor['votos']/$mediaVotos*TAM_MED_LISTADO, 1)

Esta obra está bajo una licencia de Creative Commons.