Volver al índiceProyectos - Biblioteca

El objetivo de este proyecto es crear una programa de gestión de bibliotecas muy elemental, que almacene datos sobre los usuarios, las obras disponibles y los préstamos realizados.


Un ejemplo de biblioteca puede probarse en la ventana siguiente:

ERROR (no puede mostrarse el objeto)


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

// Consultas de creación de tablas en MySQL
$consultaCreaTablaObras = "CREATE TABLE $dbObras (
    id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    titulo VARCHAR($tamTitulo), autor VARCHAR($tamAutor), 
    editorial VARCHAR($tamEditorial),   
    PRIMARY KEY(id)
    )";
$consultaCreaTablaUsuarios = "CREATE TABLE $dbUsuarios (
    id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    nombre VARCHAR($tamNombre), apellidos VARCHAR($tamApellidos),
    dni VARCHAR($tamDni),   
    PRIMARY KEY(id)
    )";
$consultaCreaTablaPrestamos = "CREATE TABLE $dbPrestamos (
    id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
    id_usuario INTEGER UNSIGNED, id_obra INTEGER UNSIGNED, prestado DATE, 
    devuelto DATE, 
    PRIMARY KEY(id)
    )";

// Consultas de creación de tablas en SQLite
$consultaCreaTablaObras = "CREATE TABLE $dbObras (
    id INTEGER PRIMARY KEY,
    autor VARCHAR($tamAutor), titulo VARCHAR($tamTitulo), 
    editorial VARCHAR($tamEditorial)
    )";
$consultaCreaTablaUsuarios = "CREATE TABLE $dbUsuarios (
    id INTEGER PRIMARY KEY,
    nombre VARCHAR($tamNombre), apellidos VARCHAR($tamApellidos),
    dni VARCHAR($tamDni)   
    )";
$consultaCreaTablaPrestamos = "CREATE TABLE $dbPrestamos (
    id INTEGER PRIMARY KEY,
    id_usuario INTEGER UNSIGNED, id_obra INTEGER UNSIGNED, 
    prestado DATE, devuelto DATE 
    )";

Y esta puede ser la consulta que enlaza las tres tablas:

$consulta = "SELECT $dbPrestamos.id AS id, $dbUsuarios.nombre as nombre, 
    $dbUsuarios.apellidos as apellidos, $dbObras.titulo as titulo, 
    $dbPrestamos.prestado as prestado, $dbPrestamos.devuelto as devuelto 
    FROM $dbPrestamos, $dbUsuarios, $dbObras
    WHERE $dbPrestamos.id_usuario=$dbUsuarios.id AND 
    $dbPrestamos.id_obra=$dbObras.id ORDER BY $campo $orden";

Biblioteca 1 - Menús

El programa de biblioteca tendrá un menú principal y tres submenús para Obras, Usuarios y Préstamos. mínimamente utilizable, la agenda debe permitir añadir registros, listarlos y borrar todos los registros.

Biblioteca - Inicio

Biblioteca - Obras

Biblioteca - Usuarios

Biblioteca - Préstamos


Biblioteca 2 - Menús Obras y Usuarios

Los menús de Obras y Usuarios tienen las mismas opciones que la agenda de teléfonos.

Nota: Al borrar una obra o un usuario, deben borrarse también los préstamos correspondientes.

Biblioteca - Obras - Añadir 1

Título:
Autor:
Editorial:

Biblioteca - Usuarios - Añadir 1

Nombre:
Apellidos:
DNI:


Biblioteca 3 - Menú préstamos

El menú de Préstamos permite crear un nuevo préstamo e indicar la fecha de devolución, así como listar todos los préstamos y borrarlos.

Notas:

Biblioteca - Préstamos - Nuevo préstamo 1

Seleccione obra y usuario e indique la fecha del préstamo:

Datos del nuevo préstamo
Usuario Obra Fecha de préstamo (dd-mm-aaaa)

Biblioteca - Préstamos - Listar

Listado de préstamos
A-Z Usuario Z-A A-Z Título Z-A 0-9 Préstamo 9-0 0-9 Devolución 9-0
Pepito Conejo La náusea 01-0-/2005 02/02/2005
Bruce Kane Novelas ejemplares 03-03-2005
Clark Kent El extranjero 03-02-2005

Biblioteca - Préstamos - Devolución 1

Seleccione el préstamo e indique la fecha de devolución:

Listado de préstamos pendientes
A-Z Usuario Z-A - A-Z Título Z-A - 0-9 Préstamo 9-0 Devolución (dd-mm-aaaa)

Biblioteca - Préstamos - Borrar 1

Listado de préstamos
Borrar A-Z Usuario Z-A A-Z Título Z-A 0-9 Préstamo 9-0 0-9 Devolución 9-0
Pepito Conejo La náusea 01-01-2005 02-02-2005
Bruce Kane Novelas ejemplares 03-03-2005 10-03-2005
Clark Kent El extranjero 03-02-2005

Esta página forma parte del curso "Páginas web con PHP" disponible en http://www.mclibre.org
Autor: Bartolomé Sintes Marco
Última modificación de esta página: 21 de febrero de 2008

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.