PHP Avanzado - Información tabulada -

Documentos relacionados
PHP y MySQL. Aplicaciones Web: PHP y base de datos MySQL (décima parte) Autor: Johnny Zulca Mamani

Índice: Tema Conexión con Bases de Datos

DISPARADORES EN SQL DISPARADORES EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999 SINTAXIS GENERAL DE UN DISPARADOR EN SQL:1999

MANUAL DE CREACION DE FORMULARIOS PARTE 1. Este manual tiene como finalidad explicar como se pueden crear los formularios sencillos de un proyecto.

A continuación se presenta la forma en que se puede conectar PHP con el gestor de bases de datos MySQL.

Construcción de formularios en HTML. Formularios. Bases de Datos 2012/2013. Luis Valencia Cabrera

Los paquetes tienen dos partes: una especificación y un cuerpo que están almacenados por separado en la base de datos.

Programación PHP de bases de datos mysql

Práctica 02. Formularios

HTML, PHP y bases de datos

Este tipo de situaciones son solventadas a partir de las variables de sesión.

Procedimientos almacenados con parametros de salida

//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui

PHP. Introducción (1) Introducción (3) Introducción (2) PHP 1

SUBPROGRAMAS PL/SQL César Martínez C. Profesor Instructor de Base de Datos Sede Puente Alto DUOC

Registro Electrónico Común (REC) Guía de usuario Presentación de una solicitud con certificado. Versión 1.0

USO DE NETSCAPE MESSENGER

Índice: Tema Aplicaciones basadas en Sesiones

MOODLE 1.9 BASE DE DATOS

Instructivo Costo Promedio Ponderado en el software administrativo

Manejo del módulo de Empresas Procedimientos:

DPWEB I, Carrito de Compras Guardar, Ing. Tomas Urbina. Carrito de compras con PHP y MYSQL

FUNCIONES PHP: DECLARACIÓN Y LLAMADAS. PARÁMETROS, RETURN. EJERCICIOS EJEMPLOS RESUELTOS. (CU00827B)

HTML: Formularios. Francisco J. Martín Mateos Carmen Graciani Díaz. Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla

Manual de ayuda de la herramienta de comunicación privada Correo Interno

Manual de usuario Mensajería Centro Virtual de Educación

APLICACIÓN COMPRAS EN SQLSERVER 2000

Movistar Imagenio Recarga de Móviles MANUAL DE USUARIO

GUÍA DE TRABAJO GRADO 11. Articulación SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

INSTITUTO POLITÉCNICO NACIONAL WEB APPLICATION DEVELOPMENT. CIFUENTES ALVAREZ ALEJANDRO SIGFRIDO 3cm3 PROYECTO TERCER PARCIAL MI HOTMAIL CON JOOMLA

Ejemplo de aplicación PHP: Tienda

INDICE Parte 1. Visual Basic Capitulo 1. Qué es Visual Basic? Capitulo 22. Mi Primera Aplicación Capitulo 3. Elementos del lenguaje

Para poder comenzar a trabajar con Excel, es necesario considerar los siguientes términos:

Tutorial de enlace entre Formulario Web y Servicio Web REST. Programación en Internet

GUIA DE LABORATORIO N 9 B. (000Webhost Php- Para desarrollar en casa)

1. Servidor Web. (apache). 2. PHP. 3. Manejador de base de datos (mysql, postgress).

DOCUMENTACIÓN DE POWER BUILDER 11. CONSULTA DINAMICA Las consultas dinámicas se realizan cuando power builder no soporta una consulta SQL.

EDUCASTUR BLOG. Comunidad Educativa de Blogs. Moderar comentarios

Funciones y TriggersIntroducción, Ejemplos

Visual Basic.net Completo

La Herramienta Redmine para la Administración de Proyectos

JSP. MSc. Daniel Alejandro Yucra Sotomayor Pag Web Services. Laboratorio Nro. 11. Web Services con JAX-WS con MySQL. I. Competencia General:

Selección de registros de una base de datos

- MANUAL DE USUARIO - KZ GUÍA DE PRODUCCIÓN

CANTABRIA GOBIERNO DE

APRENDE A CREAR UNA PÁGINA WEB CON HTML

[Instrucciones presentación solicitudes

Ejercicio 1. Formularios Maestro/Detalle.

PEMAT PETICIONES DE MATERIAL. Manual Usuario Versión 1.0 Fecha de revisión 02/24/2012 Realizado por Equipo de Desarrollo PHP. PEMAT v1.

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

Manual. Ingreso Demandas y Escritos Oficina Judicial Virtual

Funcionamiento del sistema de autentificación en PHP

Manual de Instrucciones Definición de Componentes y Registro de Notas Parciales

Sistema de Información Académica Universidad de Caldas. Instructivo Solicitudes en línea Bienestar Universitario

FORMULARIO HTML PREPARACION DEL FORMULARIO. Que información debes solicitar al visitante de tu web?

Taller de Desarrollo de Aplicaciones Web

Laboratorio Informix. Stored Procedures Triggers

Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers

1.- Introducción. 2.- Principios básicos. Manual de Introducción al ASP (Active Server Pages)

Control de Accesos SisMod

9- PHP, insertar y borrar registros

VISUAL BASIC.NET. NIVEL COMPLETO

img.1 Comenzar a crear nuestro player

ENVÍO DE DATOS DE UN FORMULARIO CON PHP. MÉTODOS GET Y POST. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00832B)

MANUAL DE USUARIO SISTEMA DE POSTULACIÓN EN LINEA Cartas de Recomendación

Procedimientos almacenados en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia

Manual de usuario de la aplicación

Terceros Ekon Sical. Departamento de Informática

En el primer paso se rellenan los datos de la empresa licitadora, que se recogen en dos apartados:

SISTEMA DE GESTION DE CALIDAD

Introducción a PostgreSQL con PHP

MANUAL DE USUARIO PROFESORES

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008

Enlaces relacionados:

CURSO DE FORMACIÓ N CONTINUA ACTIVE SERVER PAGES. Por: Ing. Carlos JEREZ jerezc@ucbcba.edu.bo

TRABAJAR OBRAS COMO TALLER MECÁNICO

Examen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015

Manual de Usuario para el Repositorio Producción Científica

A continuación se confeccionara un formulario para el ingreso de un nombre y un botón para el envío del dato ingresado al servidor:

Guía de integración del módulo PayNoPain en Prestashop

8º Unidad Didáctica PHP. Eduard Lara

MANUAL DE USUARIO PARA LA DECLARACIÓN INFORMATIVA SOBRE EL ISR DIFERIDO EN CONSOLIDACION FISCAL 19-A Versión 2.0.0

Grupo de Ingeniería del Software. Conceptos básicos de formularios HTML

Arquitectura J2EE para aplicaciones web. Aplicaciones web con JSP. Arquitectura J2EE: Capa de Acceso Web. Arquitectura J2EE: Capa Cliente

PROGRAMACIÓN CON PHP Y MYSQL. 40 horas 60 días

Concepto de vista. (con ciertas limitaciones). nivel físico) Una vista es una tabla virtual (no tiene una correspondencia a

MAESTRO DE PHP PHP NIVEL 1

3.- ACCIONES CON DIAPOSITIVAS

Crear documentos de texto en Google Docs. Avanzado

En la parte inferior de la pantalla se podrá ver el estado de la última copia y la fecha y hora actual.

Triggers 27/11/2014. Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers en Oracle

LockerRoom MANUAL DE USUARIO

GUÍA DE TRABAJO N 11 LENGUAJE C# Programación de Software Articulación SENA Grado 10 Ing. Néstor Raúl Suarez Perpiñan Página 2 de 11

Preguntas frecuentes en la plataforma RECyT

InterBase / Firebird: el uso de eventos

PHP: Lenguaje de programación

PRACTICA 1 PHP HOLA MUNDO. El comando de PHP para imprimir dentro de la página se llama echo. Nuestro programa "Hola Mundo" será entonces:

Servicios Públicos. Manual de Usuarios Módulo Gastos. Proyecto Implementación UBA. Febrero 2011 Versión 2.0

PyMEs: Cómo solicito la categorización MIPyME y los beneficios fiscales?

Transcripción:

4. Eliminar una PHP Avanzado - - Departamento de Lenguajes y Sistemas Informáticos Grupo de Ingeniería del Software 4. Eliminar una Problema a resolver Una consulta devuelve datos que son presentados de manera tabular: Pero Y si queremos poder realizar operaciones sobre los registros correspondientes a cada? IISSI 1

4. Eliminar una Problema a resolver Imagine que el diseño pasa a ser el siguiente: A cada, se le ha añadido algunos botones. En este caso: edición, eliminación y consultar préstamos del libro. 4. Eliminar una Presentación tabular Recuerde el código para presentar los datos de la consulta: // Al inicio de la página PHP $s = paginatedquery($conn,$query,$pag_num,$page_size); // En el body <table id="tabla_listado"> <tr><th> Autor</th><th> Título</th><th/></tr> foreach($s as $) { <tr class="libro"> <td> echo $["NOMBRE"]." ".$["APELLIDOS"] ; </td> <td class= titulo > echo $["TITULO"];"</td>" </tr> } </table> IISSI 2

Presentación tabular Cada se convierte en un formulario: 4. Eliminar una <table> foreach($s as $) { <form method="post" action="procesar_libro.php"> <tr class="libro"> </tr> </form> } </table> Hay que añadir los controles para mostrar/mantener los datos de cada y los mencionados botones Presentación tabular Cada se convierte en un formulario: 4. Eliminar una <form method="post" action="procesar_libro.php"> <tr class="libro"> </tr> </form> La identificación del registro actual de cada y algunos datos se mantiene en controles ocultos Al pulsarse algún botón, se envía toda la información a procesar_libro.php con el método POST para que realice la operación correspondiente Cada botón también está identificado, por lo que podemos conocer qué operación realizar y sobre qué registro IISSI 3

Presentación tabular 4. Eliminar una <form method="post" action="procesar_libro.php"> <input id="oid_libro" name="oid_libro" type="hidden" value="<?echo $["OID_LIBRO"];"/> <input id="oid_autor" name="oid_autor" type="hidden" value="<?echo $["OID_AUTOR"];"/> // Otros tantos input para OID_AUTORIA, NOMBRE Y APELLIDOS <tr class= libro > // <TD> con la información a mostrar en la <td><button id="editar" name="editar" type="submit" class="editar_"> <img src="images/pencil.bmp" class="editar_"></button> // Otros tantos botones para quitar y ver préstamos del libro </td></tr> </form> Nótense los controles ocultos ( hidden ) para identificar el registro de cada y los nombres para identificar los botones Procesamiento del formulario 4. Eliminar una Los datos se envían a procesar_libro.php mediante el método POST*: session_start(); $libro["oid_libro"] = $_REQUEST["OID_LIBRO"]; $libro["oid_autor"] = $_REQUEST["OID_AUTOR"]; // Y el resto de datos: OID_AUTORIA, NOMBRE y APELLIDOS $_SESSION["libro"] = $libro; if (isset($_request["editar"])) Header("Location:libros.php"); else if (isset($_request["quitar"])) Header("Location:quitar_libro.php"); else if (isset($_request["grabar"])) Header("Location:modificar_titulo.php"); else Header("Location:prestamos_libro.php"); * No se ha incluido el código para comprobar que alguien trata de invocar directamente a este archivo, en vez de hacerlo desde libros.php IISSI 4

Procesamiento del formulario Procesar_libro.php sólo contiene código PHP: 4. Eliminar una session_start(); $libro["oid_libro"] = $_REQUEST["OID_LIBRO"]; $libro["oid_autor"] = $_REQUEST["OID_AUTOR"]; // Y el resto de datos: OID_AUTORIA, NOMBRE y APELLIDOS $_SESSION["libro"] = $libro; La información pasada desde el formulario se mantiene en una variable de sesión $libro Hay que activar una sesión para enviar dicha información a otros archivos PHP: Cada uno de ellos realizará una operación concreta Procesamiento del formulario 4. Eliminar una Según el botón que se ha pulsado, se decide dicha operación: if (isset($_request["editar"])) Header("Location:libros.php"); else if (isset($_request["quitar"])) Header("Location:quitar_libro.php"); else if (isset($_request["grabar"])) Header("Location:modificar_titulo.php"); else Header("Location:prestamos_libro.php"); En primer lugar, se explican quitar_libro.php y prestamos_libro.php Posteriormente la edición de una del formulario IISSI 5

4. Eliminar una Eliminación de una Se abre la sesión y recogen los datos en $libro: y se borra la variable de sesión Se incluyen los archivos de acceso a datos Se invoca a la función quitar_libro() Si hubo algún tipo de error: se visualiza la página PHP error.php el mensaje de error se pasa en una variable de sesión error Por el código de error podemos indicar que se trata de una regla de negocio, para no mostrar tanto detalle En caso de éxito, volvemos a la página de inicio libro.php donde ya no debe mostrarse la eliminada 4. Eliminar una Eliminación de una El código de quitar_libro.php : $libro = $_SESSION["libro"]; unset($_session["libro"]); require_once("gestionbd.php"); require_once("gestionarlibros.php"); $conexion = crearconexionbd(); $error = quitar_libro($conexion,$libro["oid_libro"]); if ($error<>"") { $_SESSION["error"] = $error; $_SESSION[ destino"] = libros.php ; Header("Location:error.php"); } else Header("Location:libros.php"); IISSI 6

Eliminación de una 4. Eliminar una A su vez, el código de la función quitar_libro() en gestionarlibro.php function quitar_libro($conexion,$oidlibro) { try { $stmt=$conexion->prepare('call QUITAR_LIBRO(:OidLibro)'); $stmt->bindparam(':oidlibro',$oidlibro); $stmt->execute(); return ""; } catch(pdoexception $e) { // echo $e->getmessage(); return $e->getmessage(); } } 4. Eliminar una Eliminación de una A su vez, el código del procedimiento SQL en la base de datos (Nótese la regla de negocio): CREATE OR REPLACE PROCEDURE QUITAR_LIBRO (OID_LIBRO_A_QUITAR IN LIBROS.OID_LIBRO%TYPE) AS NUM_PRESTAMOS NUMBER; BEGIN SELECT COUNT(*) INTO NUM_PRESTAMOS FROM PRESTAMOS WHERE PRESTAMOS.OID_LIBRO = OID_LIBRO_A_QUITAR; IF (NUM_PRESTAMOS <> 0) THEN RAISE_APPLICATION_ERROR(-20600, Regla: No se puede quitar el libro porque ya tiene préstamos asignados'); ELSE DELETE FROM AUTORIAS WHERE OID_LIBRO = OID_LIBRO_A_QUITAR; DELETE FROM LIBROS WHERE OID_LIBRO = OID_LIBRO_A_QUITAR; END IF; END; IISSI 7

Consulta de préstamos de un libro 4. Eliminar una El código de prestamos_libro.php muestra la información de los préstamos que tiene el libro seleccionado en la página previa: Consulta de préstamos de un libro 4. Eliminar una Solamente mostramos el código PHP de su cabecera: donde se recogen los datos de sesión, y se realiza la consulta correspondiente session_start(); $libro = $_SESSION["libro"]; unset($_session["libro"]); require_once("gestionbd.php"); require_once("gestionarprestamos.php"); $conn = crearconexionbd(); $s = consultarprestamosdelibro($conn,$libro["oid_libro"]); // Aquí sigue el resto del código de la página IISSI 8

4. Eliminar una Edición de una Si el usuario hace click en el botón de editar, entonces se activan alguno de los campos y el botón de editar se cambia por uno de grabar Varios problemas: Cómo distinguir al mostrar la página que una está en modo edición? Cómo se activan y cambian esos controles? Edición de una 4. Eliminar una En la cabecera, el código PHP debe distinguir si hay una sesión activa: Esta sesión se guarda en la variable $libro, donde está la información de qué libro está en edición session_start(); if (isset($_session["libro"])) $libro = $_SESSION["libro"]; unset($_session["libro"]); // Aquí sigue el resto del código de la cabecera // Aquí sigue el resto del código de la página IISSI 9

4. Eliminar una Edición de una En cada, se pregunta si la variable $libro está definida y la actual se le corresponde por el campo OID_LIBRO : En caso afirmativo, el control correspondiente al título del libro es un input de tipo text if (isset($libro) and ($libro["oid_libro"] == $["OID_LIBRO"])) { echo <td>$["nombre"]." ".$["APELLIDOS"]</td> ; <td class='titulo'> <input id="titulo" name="titulo" type="text" value="<?echo $["TITULO"]; "/> </td> <?} else { // Aquí viene el código correspondiente a las alternativas En caso negativo, el control es de tipo hidden y la se muestra como se ha explicado anteriormente Edición de una Y hacemos lo mismo respecto a los botones: 4. Eliminar una <td> if (isset($libro) and ($libro["oid_libro"] == $["OID_LIBRO"])) { <button id="grabar" name="grabar" type="submit" class="editar_"> <img src="images/bag.bmp" class="editar_"> </button> <?} else { // Aquí viene el código correspondiente a las alternativas </td> Aprovechamos para comentar que la clase editar_ define un estilo que pone todos los espacios de márgenes y rellenos a 0 IISSI 10

Edición de una 4. Eliminar una La pulsación del botón de grabar hace que se invoque procesar_libro.php, que a su vez invocará a modificar_titulo.php : Se recibe la información a través de una variable de sesión libro que es borrada El código es muy similar a quitar_libro, sólo que ahora se invoca a la función modificar_titulo añade como parámetro el nuevo título se procesan las excepciones que pueda ocurrir A su vez, esta función invoca el procedimiento SQL MODIFICAR_TITULO Al borrar la variable de sesión, se consigue que al volver a libro.php, se muestre el título del libro ya cambiado y en modo de consulta 4. Eliminar una Qué nos queda? Todo lo correspondiente a mostrar la información tabulada se ha hecho Pero, nos hemos olvidado de que la consulta está paginada!!! A qué página hemos de volver si estábamos editando la 5 de la página 3? Hemos de volver a la primera página tras quitar una de la última? Si hay una en modo de edición y cambiamos de página, se anula la edición? Hay que mantener en una variable de sesión la página a la que hay que volver después de procesar una operación IISSI 11

Paginación de la consulta: 4. Eliminar una session_start(); // Acceso a datos y procesamiento de la variable de sesión para datos de libro // Si se ha seleccionado nueva página e intervalo if (isset($_request[ PAGINA_NUM"]) and (isset($_request[ PAGINA_TAM"]))) { $pagina_num = (int)$_request[ PAGINA_NUM"]; $pagina_tam = (int)$_request[ PAGINA_TAM"]; } else { // Hay una sesión activa? if (isset($_session[ pagina"])) { $pagina = $_SESSION["pagina"]; $pagina_num = (int)$pagina[ PAGINA_NUM"]; $pagina_tam = (int)$pagina[ PAGINA_TAM"]; } else { // No había nada, primer acceso a la página y tamaño por defecto $pagina_num = 1; $pagina_size = 10; } } // Antes de seguir, borramos las variables de sesión unset($_session["libro"]); unset($_session["pagina"]); // Se comprueban los límites de los valores de // Asignamos los valores de sesión para página e intervalo para volver a ella después de una operación $pagina[ PAGINA_NUM"] = $pagina_num; $pagina[ PAGINA_TAM"] = $pagina_tam; $_SESSION["pagina"] = $pagina Comentarios y sugerencias 4. Eliminar una Introducción a la Ingeniería del Software y a los Sistemas de Información IISSI 12