# Proyectos - Agenda de teléfonos

El objetivo de este proyecto es crear una agenda de teléfonos sencilla, que almacene el nombre, el apellido, el número de teléfono y la dirección de correo electrónico. En el primer ejercicio se crea una agenda con capcidades básicas y en los ejercicios siguientes se van ampliando sus capacidades.

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

Enlace a ejercicio Agenda de teléfonos

Comentarios:

- En la sección de soluciones tiene disponible una versión mínima del ejercicio que únicamente permite crear la base de datos, pero que puede utilizarse como base para el resto del ejercicio.
- Esta pueden ser las consultas de creación de tabla para este proyecto:

      // Tamaño de los campos en la tabla
      define('TAM_NOMBRE',     40);  // Tamaño del campo Nombre
      define('TAM_APELLIDOS',  60);  // Tamaño del campo Apellidos
      define('TAM_TELEFONO',   10);  // Tamaño del campo Teléfono
      define('TAM_CORREO',     50);  // Tamaño del campo Correo

      // Consulta de creación de tabla en MySQL
      $consulta = "CREATE TABLE $dbAgenda (
          id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
          nombre VARCHAR(".TAM_NOMBRE."),
          apellidos VARCHAR(".TAM_APELLIDOS."),
          telefono VARCHAR(".TAM_TELEFONO."),
          correo VARCHAR(".TAM_CORREO."),
          PRIMARY KEY(id)
          )";

      // Consulta de creación de tabla en SQLite
      $consulta = "CREATE TABLE $dbAgenda (
          id INTEGER PRIMARY KEY,
          nombre VARCHAR(".TAM_NOMBRE."),
          apellidos VARCHAR(".TAM_APELLIDOS."),
          telefono VARCHAR(".TAM_TELEFONO."),
          correo VARCHAR(".TAM_CORREO.")
          )";

## Agenda 1 - Añadir registros, listar y borrar

Para que pueda ser mínimamente utilizable, la agenda debe permitir añadir registros, listarlos y borrar todos los registros.

# Agenda - Inicio

# Agenda - Añadir 1

Nombre: |
Apellidos: |
Teléfono: |
Correo: |

# Agenda - Añadir 2

Registro introducido correctamente.

Si se dejan todos los campos vacíos, el registro no se debe guardar.

# Agenda - Listar

Nombre | Apellidos | Teléfono | Correo
--- | --- | --- | ---
Pepito | Conejo | 963141592 | pepitoconejo@example.org

# Agenda - Borrar todo 1

¿Está seguro?

# Agenda - Borrar todo 2

Base de datos borrada correctamente

Base de datos creada correctamente.

Tabla creada correctamente

## Agenda 2 - Listar registros por distintos criterios

Añade a la agenda anterior la posibilidad de ordenar los listados por cualquier campo, en orden ascendente o descendente, y que las filas impares salgan de un color de fondo distinto para mejorar la legibilidad.

# Agenda - Listar

Nombre | Apellidos | Teléfono | Correo
--- | --- | --- | ---
Pepito | Conejo | 963141592 | pepitoconejo@example.org
Rip | Kirby | 961414213 | rip.kirby@example.com
Juan | López | 961619033 | superlopez@example.com
Filemón | Pi | 962718281 | filemon.pi@example.org

## Agenda 3 - Borrar registros individualmente

Añade a la agenda anterior la posibilidad de borrar individualmente los registros.

# Agenda - Borrar 1

Marque las casillas que quiera borrar.

Borrar | Nombre | Apellidos | Teléfono | Correo
--- | --- | --- | --- | ---
| Pepito | Conejo | 963141592 | pepitoconejo@example.org
| Rip | Kirby | 961414213 | rip.kirby@example.com
| Juan | López | 961619033 | superlopez@example.com
| Filemón | Pi | 962718281 | filemon.pi@example.org

# Agenda - Borrar 2

Registro borrado correctamente.

Registro borrado correctamente.

## Agenda 4 - Modificar registros

Añade a la agenda anterior la posibilidad de modificar los registros individualmente.

# Agenda - Modificar 1

Indique el registro que quiera modificar.

Modificar | Nombre | Apellidos | Teléfono | Correo
--- | --- | --- | --- | ---
| Pepito | Conejo | 963141592 | pepitoconejo@rabbit.org
| Rip | Kirby | 961414213 | rip.kirby@kfs.com
| Juan | López | 961619033 | superlopez@jan.com
| Filemón | Pi | 962718281 | filemon.pi@tia.org

# Agenda - Modificar 2

Modifique los campos que desee:

Nombre: |
Apellidos: |
Teléfono: |
Correo: |

# Agenda - Modificar 3

El registro ha sido modificado.

Si se dejan todos los campos vacíos, el registro no se debe modificar.

## Agenda 5 - Buscar registros

Añade a la agenda anterior la posibilidad buscar registros por cualquier criterio.

# Agenda - Buscar 1

Nombre: |
Apellidos: |
Teléfono: |
Correo: |

# Agenda - Buscar 2

Registros encontrados:
Nombre | Apellidos | Teléfono | Correo
--- | --- | --- | ---
Pepito | Conejo | 963141592 | pepitoconejo@rabbit.org
Rip | Kirby | 961414213 | rip.kirby@kfs.com

Esta obra está bajo una licencia de Creative Commons.