# Exámenes - Convertidor de unidades

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

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

Enlace a examen Convertidor de unidades

## Convertidor de unidades - 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
    $tamUnidad = 30; // Tamaño del campo Unidad
    $tamValor  = 10; // Tamaño del campo Factor de conversión

    // Consultas de creación de tabla en MySQL
            $consulta = "CREATE TABLE $dbTabla (
                id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
                valor1 VARCHAR($tamValor),
                unidad1 VARCHAR($tamUnidad),
                valor2 VARCHAR($tamValor),
                unidad2 VARCHAR($tamUnidad),
                PRIMARY KEY(id)

    // Consultas de creación de tablas en SQLite
        $consulta = "CREATE TABLE $dbTabla (
            id INTEGER PRIMARY KEY,
            valor1 VARCHAR($tamValor),
            unidad1 VARCHAR($tamUnidad),
            valor2 VARCHAR($tamValor),
            unidad2 VARCHAR($tamUnidad)
            )";

## Convertidor de unidades - Comentarios

- No se podrá guardar un registro sin los dos valores y unidades
- No se podrán guardar dos registros con las mismas unidades.
- Los campos de valores deben ser números
- La opción Convertir permitirá convertir valores, en tres pasos:
  - En la primera página se listarán las unidades 1, que se elegirá mediante un botón radio:

        // Consulta para seleccionar las unidades 1 (sin repeticiones)
        $consulta = "SELECT DISTINCT unidad1 FROM $dbTabla
            ORDER BY unidad1 ASC";

  - En la segunda página se solicitará el valor a convertir y se listarán las unidades 2 que pueden convertirse a partir de la unidad 1 elegida, que se elegirá mediante un botón radio:

        // Consulta para seleccionar las unidades 2 (sin repeticiones)
            $consulta = "SELECT DISTINCT unidad2 FROM $dbTabla
                WHERE unidad1='$unidad1'
                ORDER BY unidad1 ASC";

    En la segunda página habrá que incluir un control oculto con la unidad 1 elegida en la tercera página

  - En la tercera página se realizará la conversión:.

        // Consulta para seleccionar la conversión
                $consulta = "SELECT * FROM $dbTabla
                    WHERE unidad1='$unidad1'
                    AND unidad2='$unidad2'";
        // Regla de tres para calcular el resultado
         $resultado = $numero*$valor['valor2']/$valor['valor1'];

Esta obra está bajo una licencia de Creative Commons.