SlideShare a Scribd company logo
1 of 14
Download to read offline
Introducción al desarrollo web con PHP 5
Ejercicios
Universidad de Córdoba
martes, 2 de noviembre de 2010
Índice de contenidos
Introducción........................................................................................................................................ 3
Relación de ejercicios......................................................................................................................... 4
Ejercicio 01.......................................................................................................................................4
Ejercicio 02...................................................................................................................................... 4
Ejercicio 03...................................................................................................................................... 4
Ejercicio 04...................................................................................................................................... 5
Desarrollo de un blog......................................................................................................................... 7
Datos necesarios.............................................................................................................................7
Script de creación de la base de datos..........................................................................................8
Requisitos del sistema.................................................................................................................. 10
Listado de artículos...................................................................................................................10
Detalle de un artículo................................................................................................................ 10
Nuevo artículo............................................................................................................................11
Editar artículo............................................................................................................................12
Gadget de autenticación........................................................................................................... 13
Gadget de publicaciones anteriores..........................................................................................13
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Introducción
En este documento, el alumno encontrará la relación de ejercicios que ha de codifcar para
obtener una mejor puntuación a la fnalización del curso.
Adicionalmente, también se especifca el enunciado y material necesario para el desarrollo
del trabajo optativo, “Desarrollo de un blog”.
El material elaborado habrá que entregarlo en un documento con
formato PDF a la dirección de correo cristina.quintana@fai.es antes
del domingo 28 de noviembre de 2010.
Como se especifca en el programa, las dos últimas clases presenciales del curso se
dedicarán a las dudas surgidas en la resolución de los ejercicios detallados en este
documento.
http://www.fai.es Página 3 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Relación de ejercicios
A continuación, se detallan los enunciados de los ejercicios a desarrollar.
Ejercicio 01
Dado un número en formato numérico comprendido entre 1 y 99, imprimirlo en
formato texto.
Construir un formulario para la recepción de datos e implementar la validación de los
mismos.
Ejercicio 02
Dado un día, mes y año, imprimir el día de la semana al que pertenece.
El mes se introducirá en formato texto.
Construir un formulario para la recepción de datos e implementar la validación de los
mismos.
Ejercicio 03
Construir una clase que contenga la lógica necesaria para dibujar un calendario con el
que se muestra en la siguiente imagen.
El código a utilizar para renderizar el calendario es:
<?php
// Dibuja el calendario del mes actual
$calendar01 = new MyCalendar();
$calendar01->render();
// Dibuja el calendario del mes de agosto
$calendar02 = new MyCalendar( "agosto", 2010 );
$calendar02->render();
http://www.fai.es Página 4 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Ejercicio 04
Construir una aplicación con dos pantallas:
1. Listado de asignaturas
Cada asignatura será un enlace al listado de alumnos matriculados en ésta.
2. Listado de alumnos de una asignaturas
Mostrar el nombre de la asignatura y los datos de sus alumnos matriculados.
Los datos necesarios para la conexión a la base de datos son:
Host server.fai.es
Base de datos curso_php
Usuario curso
Contraseña curso_2010
Si se desea utilizar la base de datos en entorno local, el script para la creación es el
siguiente:
--
-- Base de datos: `curso_php`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `alumno`
--
DROP TABLE IF EXISTS `alumno`;
CREATE TABLE IF NOT EXISTS `alumno` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
`apellidos` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=81 ;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `alumno_asignatura`
--
DROP TABLE IF EXISTS `alumno_asignatura`;
http://www.fai.es Página 5 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
CREATE TABLE IF NOT EXISTS `alumno_asignatura` (
`alumno_id` bigint(20) NOT NULL DEFAULT '0',
`asignatura_id` bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY (`alumno_id`,`asignatura_id`),
KEY `alumno_asignatura_asignatura_id_asignatura_id` (`asignatura_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `asignatura`
--
DROP TABLE IF EXISTS `asignatura`;
CREATE TABLE IF NOT EXISTS `asignatura` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Filtros para la tabla `alumno_asignatura`
--
ALTER TABLE `alumno_asignatura`
ADD CONSTRAINT `alumno_asignatura_alumno_id_alumno_id` FOREIGN KEY
(`alumno_id`) REFERENCES `alumno` (`id`),
ADD CONSTRAINT `alumno_asignatura_asignatura_id_asignatura_id` FOREIGN
KEY (`asignatura_id`) REFERENCES `asignatura` (`id`);
http://www.fai.es Página 6 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Desarrollo de un blog
A continuación, se detallan los datos necesarios para el desarrollo del blog y las
características que ha de cumplir en su ejecución.
Datos necesarios
Los datos necesarios para la conexión a la base de datos son:
Host server.fai.es
Base de datos curso_php_blog
Usuario curso
Contraseña curso_2010
La base de datos consta de la siguiente estructura:
• Tabla user
Contenido de los datos del usuario con privilegios.
Columnas de la tabla:
▪ name
Nombre del usuario.
▪ last_name
Apellidos del usuario.
▪ username
Nombre con el que el usuario accede a la aplicación.
Este dato es único para cada usuario.
▪ password
Clave con la que el usuario accede a la aplicación.
• Tabla article
Contenido de los artículos introducidos por usuarios privilegiados.
Columnas de la tabla:
▪ created_at
Fecha de registro de la publicación.
▪ title
http://www.fai.es Página 7 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Título de la publicación.
▪ value
Contenido de la publicación.
▪ user_id
Identifcador del usuario que ha publicado el nuevo contenido.
• Tabla comment
Contenido de los comentarios introducidos tanto por usuarios privilegiados
como por usuarios anónimos.
Columnas de la tabla:
▪ created_at
Fecha de registro de la publicación.
▪ value
Contenido de la publicación.
▪ article_id
Identifcador del artículo al que hace referencia.
Script de creación de la base de datos
Se adjunta el script de creación de la base de datos a utilizar en este ejercicio, para
aquellos que deseen realizar el ejercicio en su ordenador personal.
--
-- Base de datos: `curso_php_blog`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `article`
--
DROP TABLE IF EXISTS `article`;
CREATE TABLE IF NOT EXISTS `article` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`title` varchar(100) NOT NULL,
`value` varchar(255) NOT NULL,
`created_at` date NOT NULL,
`user_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `user_id_idx` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
http://www.fai.es Página 8 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `comment`
--
DROP TABLE IF EXISTS `comment`;
CREATE TABLE IF NOT EXISTS `comment` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`value` varchar(255) NOT NULL,
`created_at` date NOT NULL,
`article_id` bigint(20) NOT NULL,
PRIMARY KEY (`id`),
KEY `article_id_idx` (`article_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `user`
--
DROP TABLE IF EXISTS `user`;
CREATE TABLE IF NOT EXISTS `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(100) NOT NULL,
`last_name` varchar(100) NOT NULL,
`username` varchar(30) NOT NULL,
`password` varchar(255) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
--
-- Filtros para la tabla `article`
--
ALTER TABLE `article`
ADD CONSTRAINT `article_user_id_user_id` FOREIGN KEY (`user_id`) REFERENCES
`user` (`id`);
--
-- Filtros para la tabla `comment`
--
ALTER TABLE `comment`
ADD CONSTRAINT `comment_article_id_article_id` FOREIGN KEY (`article_id`)
REFERENCES `article` (`id`);
http://www.fai.es Página 9 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Requisitos del sistema
El problema a resolver se compone de cuatro pantallas, dos públicas y otras dos
protegidas por autenticación de usuario.
Listado de artículos
Esta pantalla es de acceso público para todos los usuarios de la red, y muestra
el listado de artículos almacenados en el sistema en orden descendente de la
fecha de creación.
De cada artículo se muestra el título, seguido de la fecha de creación.
Este título será un enlace a la pantalla de detalle de dicho artículo.
Además de ésto, esta pantalla posee una columna a la derecha dónde se
muestran los gadget de autenticación y publicaciones anteriores, los cuáles se
explican más adelante en este documento.
Detalle de un artículo
Esta pantalla es de acceso público para todos los usuarios de la red, y muestra
la información del artículo que se ha seleccionado en la pantalla de listado, a
través de la cuál se ha accedido.
Se detalla el título, descripción y fecha de creación del artículo.
Acompañando a estos datos, se debe implementar un formulario para añadir
comentarios asociados a dicho artículo.
Además de lo anterior, se ha de visualizar el listado de comentarios que
usuarios de la aplicación han añadido a través del formulario anterior. Estos
comentarios se han de mostrar en orden descendente según la fecha en la
que han sido introducidos.
Replicando la funcionalidad de la pantalla de listado, también posee una
http://www.fai.es Página 10 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
columna a la derecha dónde se muestran los gadget de autenticación y
publicaciones anteriores, los cuáles se explican más adelante en este
documento.
Nuevo artículo
Esta pantalla es de acceso restringido, sólo se podrá acceder a esta pantalla
tras autenticarse mediante el gadget de la columna de la derecha de las
pantallas de listado y detalle de artículos.
Esta pantalla muestra un formulario de creación dónde aparecerán los
campos título y artículo o descripción. Al guardar este formulario se tomará la
fecha actual para el campo create_at de la base de datos.
Debajo de este formulario, han de aparecer el listado de artículos publicados
por el usuario autenticado en orden descendente por fecha de creación.
Cada uno de estos artículos de ese listado ha de mostrar el título del artículo
http://www.fai.es Página 11 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
seguido de la fecha de creación.
El título ha de ser un enlace que redirija a la pantalla de edición de dicho
artículo, la cuál se describe a continuación.
Editar artículo
Esta pantalla es de acceso restringido, es decir, sólo se puede acceder a esta
pantalla, estando autenticado en el sistema.
La pantalla es idéntica a la pantalla del formulario de nuevo artículo, salvo
porque el formulario aparece completado con los datos del artículo que se
está editando.
http://www.fai.es Página 12 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Gadget de autenticación
Situado en las parte o columna de la derecha de las pantallas de listado de
artículos y detalle de la parte pública del blog, hay que defnir una zona dónde
los usuarios con privilegios puedan acceder al área privada.
Esta zona vendrá defnida por dos cajas de texto en las que especifcar el
nombre de usuario y la contraseña.
Al pulsar el botón registrar, se han de comprobar los datos y en caso de ser
correctos redirigir al formulario de nuevo artículo.
Gadget de publicaciones anteriores
En la columna de la derecha de las pantallas de listado de artículos y detalle
de la parte pública, hay que defnir otra zona para las publicaciones
anteriores.
http://www.fai.es Página 13 de 14
Av. Tenor Pedro la Virgen s/n (CADE)
Córdoba (España)
tlf. 957 40 61 40
Se ha de mostrar una lista los meses anteriores al actual y junto a estos el
número de artículos que se han publicado en dichas fechas.
http://www.fai.es Página 14 de 14

More Related Content

What's hot

PHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHPPHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHPRightster
 
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosIniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosRightster
 
Guía Practica conexión BD 2021
Guía Practica conexión BD  2021Guía Practica conexión BD  2021
Guía Practica conexión BD 2021lissette_torrealba
 
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebPHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebRightster
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyJuan Eladio Sánchez Rosas
 
Las buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones SymfonyLas buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones Symfonysymfony_bcn
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Edgar Dueñas
 
Toturial aplicacion base de datos jsp
Toturial aplicacion base de datos jspToturial aplicacion base de datos jsp
Toturial aplicacion base de datos jspGabriela Vazquez
 
Masterclass PHP 5.3
Masterclass PHP 5.3Masterclass PHP 5.3
Masterclass PHP 5.3ADWE Team
 
Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012Gustavo Inocente Chacón
 
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebPHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebRightster
 
Actividad No. 1.7: Creación de usuarios en MySQL
Actividad No. 1.7: Creación de usuarios en MySQLActividad No. 1.7: Creación de usuarios en MySQL
Actividad No. 1.7: Creación de usuarios en MySQLFrancisco Medina
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasosSoni BM
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRJuan Belón Pérez
 

What's hot (18)

CRUD básico con Symfony
CRUD básico con SymfonyCRUD básico con Symfony
CRUD básico con Symfony
 
PHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHPPHP Avanzado: Características avanzadas de PHP
PHP Avanzado: Características avanzadas de PHP
 
Iniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a ObjetosIniciación PHP 5. Programación Orientada a Objetos
Iniciación PHP 5. Programación Orientada a Objetos
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Guía Practica conexión BD 2021
Guía Practica conexión BD  2021Guía Practica conexión BD  2021
Guía Practica conexión BD 2021
 
PHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad WebPHP Avanzado: Seguridad Web
PHP Avanzado: Seguridad Web
 
Desarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfonyDesarrollo de aplicaciones web con PHP y symfony
Desarrollo de aplicaciones web con PHP y symfony
 
Las buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones SymfonyLas buenas prácticas oficiales para aplicaciones Symfony
Las buenas prácticas oficiales para aplicaciones Symfony
 
Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2Mis primeros pasos con Symfony 2
Mis primeros pasos con Symfony 2
 
Toturial aplicacion base de datos jsp
Toturial aplicacion base de datos jspToturial aplicacion base de datos jsp
Toturial aplicacion base de datos jsp
 
Masterclass PHP 5.3
Masterclass PHP 5.3Masterclass PHP 5.3
Masterclass PHP 5.3
 
Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012Manual de la conexión de php con sqlserver 2012
Manual de la conexión de php con sqlserver 2012
 
PHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios WebPHP Avanzado: PHP, XML y Servicios Web
PHP Avanzado: PHP, XML y Servicios Web
 
Actividad No. 1.7: Creación de usuarios en MySQL
Actividad No. 1.7: Creación de usuarios en MySQLActividad No. 1.7: Creación de usuarios en MySQL
Actividad No. 1.7: Creación de usuarios en MySQL
 
Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP Composer: Gestionando dependencias en PHP
Composer: Gestionando dependencias en PHP
 
Symfony2 Formacion y primeros pasos
Symfony2  Formacion y primeros pasosSymfony2  Formacion y primeros pasos
Symfony2 Formacion y primeros pasos
 
Tema servlets
Tema servletsTema servlets
Tema servlets
 
Introducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGRIntroducción a PHP - Programador PHP - UGR
Introducción a PHP - Programador PHP - UGR
 

Viewers also liked

Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicioswilliam kozisck
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosRightster
 
Cuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phpCuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phplgcj1989
 
Ejercicios esctructuras repeticion 2012 1
Ejercicios esctructuras repeticion 2012 1Ejercicios esctructuras repeticion 2012 1
Ejercicios esctructuras repeticion 2012 1elitatks
 
Ejercicios PHP
Ejercicios PHPEjercicios PHP
Ejercicios PHPramos866
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacionJaime amambal
 
Beyond Virtualisation
Beyond VirtualisationBeyond Virtualisation
Beyond VirtualisationRightster
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigoepetekaun
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVIrontec
 
Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPJesus Castagnetto
 
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
Sesion Nº 04   Introducción A Php   Operadores E InstruccionesSesion Nº 04   Introducción A Php   Operadores E Instrucciones
Sesion Nº 04 Introducción A Php Operadores E InstruccionesEdgar A. Cruz Huaman
 
Lenguaje de programacion php
Lenguaje de programacion   phpLenguaje de programacion   php
Lenguaje de programacion phpzousbabastre
 
Curso php - capitulo 2
Curso php - capitulo 2Curso php - capitulo 2
Curso php - capitulo 2yanburbano
 
Taller mysql console_2
Taller mysql console_2Taller mysql console_2
Taller mysql console_2jonathan02591
 
Proyecto, PHP y MySQL
Proyecto, PHP y MySQLProyecto, PHP y MySQL
Proyecto, PHP y MySQLyanburbano
 

Viewers also liked (20)

ejercicios php rfo
ejercicios php rfoejercicios php rfo
ejercicios php rfo
 
Manual de php con ejercicios
Manual de php con ejerciciosManual de php con ejercicios
Manual de php con ejercicios
 
Ejercicios preliminares en php
Ejercicios preliminares en phpEjercicios preliminares en php
Ejercicios preliminares en php
 
Curso php y_my_sql
Curso php y_my_sqlCurso php y_my_sql
Curso php y_my_sql
 
Iniciación PHP 5. Ejemplos
Iniciación PHP 5. EjemplosIniciación PHP 5. Ejemplos
Iniciación PHP 5. Ejemplos
 
Cuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-phpCuaderno de-ejercicios-y-practicas-php
Cuaderno de-ejercicios-y-practicas-php
 
Ejercicios esctructuras repeticion 2012 1
Ejercicios esctructuras repeticion 2012 1Ejercicios esctructuras repeticion 2012 1
Ejercicios esctructuras repeticion 2012 1
 
Ejercicios PHP
Ejercicios PHPEjercicios PHP
Ejercicios PHP
 
Bbdd para ejercicios php
Bbdd para ejercicios phpBbdd para ejercicios php
Bbdd para ejercicios php
 
Ejercicios resueltos de programacion
Ejercicios resueltos de programacionEjercicios resueltos de programacion
Ejercicios resueltos de programacion
 
Beyond Virtualisation
Beyond VirtualisationBeyond Virtualisation
Beyond Virtualisation
 
52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo52 ejercicios-resueltos-en-pseudocodigo
52 ejercicios-resueltos-en-pseudocodigo
 
Curso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPVCurso Avanzado PHP para EHU/UPV
Curso Avanzado PHP para EHU/UPV
 
Buenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHPBuenas Prácticas de Programación en PHP
Buenas Prácticas de Programación en PHP
 
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
Sesion Nº 04   Introducción A Php   Operadores E InstruccionesSesion Nº 04   Introducción A Php   Operadores E Instrucciones
Sesion Nº 04 Introducción A Php Operadores E Instrucciones
 
Módulo de PHP
Módulo de PHPMódulo de PHP
Módulo de PHP
 
Lenguaje de programacion php
Lenguaje de programacion   phpLenguaje de programacion   php
Lenguaje de programacion php
 
Curso php - capitulo 2
Curso php - capitulo 2Curso php - capitulo 2
Curso php - capitulo 2
 
Taller mysql console_2
Taller mysql console_2Taller mysql console_2
Taller mysql console_2
 
Proyecto, PHP y MySQL
Proyecto, PHP y MySQLProyecto, PHP y MySQL
Proyecto, PHP y MySQL
 

Similar to Iniciación PHP 5. Ejercicios

Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bdJulio Pari
 
Examen ISC
Examen ISCExamen ISC
Examen ISCivan mtz
 
Php08 mantenimiento tablas
Php08 mantenimiento tablasPhp08 mantenimiento tablas
Php08 mantenimiento tablasJulio Pari
 
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Luis775803
 
Pysafet workflow and json library documentation
Pysafet workflow and json library documentation Pysafet workflow and json library documentation
Pysafet workflow and json library documentation Víctor Bravo Bravo
 
Aplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slideAplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slidemarieuri
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencapaulcuenca9
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion juandavid1118
 
Sistema integrado
Sistema integradoSistema integrado
Sistema integradobruchsytem
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4cognos_uie
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttlingGeneXus
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttlingGeneXus
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephpbetabeers
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Luis Fernando Aguas Bucheli
 
Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005Jose Ponce
 

Similar to Iniciación PHP 5. Ejercicios (20)

Php07 consultas bd
Php07 consultas bdPhp07 consultas bd
Php07 consultas bd
 
Examen ISC
Examen ISCExamen ISC
Examen ISC
 
Php08 mantenimiento tablas
Php08 mantenimiento tablasPhp08 mantenimiento tablas
Php08 mantenimiento tablas
 
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
Microsoft Reactor - Creando un modelo de Regresión con Azure Machine Learnin...
 
Pysafet workflow and json library documentation
Pysafet workflow and json library documentation Pysafet workflow and json library documentation
Pysafet workflow and json library documentation
 
Manual de fragmentación vertical
Manual de fragmentación vertical Manual de fragmentación vertical
Manual de fragmentación vertical
 
Aplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slideAplicaciones para sistemas distribuidos slide
Aplicaciones para sistemas distribuidos slide
 
Guiapractica de bd completa
Guiapractica de bd completaGuiapractica de bd completa
Guiapractica de bd completa
 
Informe grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuencaInforme grupal f_arinango_ cuenca
Informe grupal f_arinango_ cuenca
 
EXAMEN
EXAMENEXAMEN
EXAMEN
 
la mejor forma de Conectar c# con mysql con archivos de configuracion
 la mejor forma de Conectar c# con mysql con archivos de configuracion  la mejor forma de Conectar c# con mysql con archivos de configuracion
la mejor forma de Conectar c# con mysql con archivos de configuracion
 
Sistema integrado
Sistema integradoSistema integrado
Sistema integrado
 
Curso php dia4
Curso php dia4Curso php dia4
Curso php dia4
 
SEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdfSEVILLA Meetups23032023.pdf
SEVILLA Meetups23032023.pdf
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
 
0157 genexus full_throttling
0157 genexus full_throttling0157 genexus full_throttling
0157 genexus full_throttling
 
Intro a cakephp
Intro a cakephpIntro a cakephp
Intro a cakephp
 
Manual de fragmentación mixta
Manual de fragmentación mixtaManual de fragmentación mixta
Manual de fragmentación mixta
 
Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700Efc programación .net-luis fernando aguas - 22012022 1700
Efc programación .net-luis fernando aguas - 22012022 1700
 
Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005Guia de Laboratorios 5 - VB.NET 2005
Guia de Laboratorios 5 - VB.NET 2005
 

Recently uploaded

Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfAlfaresbilingual
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...JonathanCovena1
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOBRIGIDATELLOLEONARDO
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfMercedes Gonzalez
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfPaolaRopero2
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfUPTAIDELTACHIRA
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptxRigoTito
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdfValeriaCorrea29
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Alejandrino Halire Ccahuana
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSYadi Campos
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfNancyLoaa
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdfMiNeyi1
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesYanirisBarcelDelaHoz
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptxdeimerhdz21
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Lourdes Feria
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAJAVIER SOLIS NOYOLA
 

Recently uploaded (20)

Infografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdfInfografía EE con pie del 2023 (3)-1.pdf
Infografía EE con pie del 2023 (3)-1.pdf
 
La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...La empresa sostenible: Principales Características, Barreras para su Avance y...
La empresa sostenible: Principales Características, Barreras para su Avance y...
 
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJOACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
ACTIVIDAD DIA DE LA MADRE FICHA DE TRABAJO
 
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdfFeliz Día de la Madre - 5 de Mayo, 2024.pdf
Feliz Día de la Madre - 5 de Mayo, 2024.pdf
 
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdfGUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
GUIA DE CIRCUNFERENCIA Y ELIPSE UNDÉCIMO 2024.pdf
 
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdfNUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
NUEVAS DIAPOSITIVAS POSGRADO Gestion Publica.pdf
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
2 REGLAMENTO RM 0912-2024 DE MODALIDADES DE GRADUACIÓN_.pptx
 
Abril 2024 - Maestra Jardinera Ediba.pdf
Abril 2024 -  Maestra Jardinera Ediba.pdfAbril 2024 -  Maestra Jardinera Ediba.pdf
Abril 2024 - Maestra Jardinera Ediba.pdf
 
Supuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docxSupuestos_prácticos_funciones.docx
Supuestos_prácticos_funciones.docx
 
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
Lecciones 05 Esc. Sabática. Fe contra todo pronóstico.
 
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VSOCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
OCTAVO SEGUNDO PERIODO. EMPRENDIEMIENTO VS
 
Cuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdfCuaderno de trabajo Matemática 3 tercer grado.pdf
Cuaderno de trabajo Matemática 3 tercer grado.pdf
 
Power Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptxPower Point: Fe contra todo pronóstico.pptx
Power Point: Fe contra todo pronóstico.pptx
 
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
6.-Como-Atraer-El-Amor-01-Lain-Garcia-Calvo.pdf
 
PIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonablesPIAR v 015. 2024 Plan Individual de ajustes razonables
PIAR v 015. 2024 Plan Individual de ajustes razonables
 
INSTRUCCION PREPARATORIA DE TIRO .pptx
INSTRUCCION PREPARATORIA DE TIRO   .pptxINSTRUCCION PREPARATORIA DE TIRO   .pptx
INSTRUCCION PREPARATORIA DE TIRO .pptx
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...Caja de herramientas de inteligencia artificial para la academia y la investi...
Caja de herramientas de inteligencia artificial para la academia y la investi...
 
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLAACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
ACERTIJO DE POSICIÓN DE CORREDORES EN LA OLIMPIADA. Por JAVIER SOLIS NOYOLA
 

Iniciación PHP 5. Ejercicios

  • 1. Introducción al desarrollo web con PHP 5 Ejercicios Universidad de Córdoba martes, 2 de noviembre de 2010
  • 2. Índice de contenidos Introducción........................................................................................................................................ 3 Relación de ejercicios......................................................................................................................... 4 Ejercicio 01.......................................................................................................................................4 Ejercicio 02...................................................................................................................................... 4 Ejercicio 03...................................................................................................................................... 4 Ejercicio 04...................................................................................................................................... 5 Desarrollo de un blog......................................................................................................................... 7 Datos necesarios.............................................................................................................................7 Script de creación de la base de datos..........................................................................................8 Requisitos del sistema.................................................................................................................. 10 Listado de artículos...................................................................................................................10 Detalle de un artículo................................................................................................................ 10 Nuevo artículo............................................................................................................................11 Editar artículo............................................................................................................................12 Gadget de autenticación........................................................................................................... 13 Gadget de publicaciones anteriores..........................................................................................13
  • 3. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Introducción En este documento, el alumno encontrará la relación de ejercicios que ha de codifcar para obtener una mejor puntuación a la fnalización del curso. Adicionalmente, también se especifca el enunciado y material necesario para el desarrollo del trabajo optativo, “Desarrollo de un blog”. El material elaborado habrá que entregarlo en un documento con formato PDF a la dirección de correo cristina.quintana@fai.es antes del domingo 28 de noviembre de 2010. Como se especifca en el programa, las dos últimas clases presenciales del curso se dedicarán a las dudas surgidas en la resolución de los ejercicios detallados en este documento. http://www.fai.es Página 3 de 14
  • 4. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Relación de ejercicios A continuación, se detallan los enunciados de los ejercicios a desarrollar. Ejercicio 01 Dado un número en formato numérico comprendido entre 1 y 99, imprimirlo en formato texto. Construir un formulario para la recepción de datos e implementar la validación de los mismos. Ejercicio 02 Dado un día, mes y año, imprimir el día de la semana al que pertenece. El mes se introducirá en formato texto. Construir un formulario para la recepción de datos e implementar la validación de los mismos. Ejercicio 03 Construir una clase que contenga la lógica necesaria para dibujar un calendario con el que se muestra en la siguiente imagen. El código a utilizar para renderizar el calendario es: <?php // Dibuja el calendario del mes actual $calendar01 = new MyCalendar(); $calendar01->render(); // Dibuja el calendario del mes de agosto $calendar02 = new MyCalendar( "agosto", 2010 ); $calendar02->render(); http://www.fai.es Página 4 de 14
  • 5. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Ejercicio 04 Construir una aplicación con dos pantallas: 1. Listado de asignaturas Cada asignatura será un enlace al listado de alumnos matriculados en ésta. 2. Listado de alumnos de una asignaturas Mostrar el nombre de la asignatura y los datos de sus alumnos matriculados. Los datos necesarios para la conexión a la base de datos son: Host server.fai.es Base de datos curso_php Usuario curso Contraseña curso_2010 Si se desea utilizar la base de datos en entorno local, el script para la creación es el siguiente: -- -- Base de datos: `curso_php` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `alumno` -- DROP TABLE IF EXISTS `alumno`; CREATE TABLE IF NOT EXISTS `alumno` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `nombre` varchar(255) NOT NULL, `apellidos` varchar(255) NOT NULL, `email` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=81 ; -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `alumno_asignatura` -- DROP TABLE IF EXISTS `alumno_asignatura`; http://www.fai.es Página 5 de 14
  • 6. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 CREATE TABLE IF NOT EXISTS `alumno_asignatura` ( `alumno_id` bigint(20) NOT NULL DEFAULT '0', `asignatura_id` bigint(20) NOT NULL DEFAULT '0', PRIMARY KEY (`alumno_id`,`asignatura_id`), KEY `alumno_asignatura_asignatura_id_asignatura_id` (`asignatura_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `asignatura` -- DROP TABLE IF EXISTS `asignatura`; CREATE TABLE IF NOT EXISTS `asignatura` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `nombre` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ; -- -- Filtros para la tabla `alumno_asignatura` -- ALTER TABLE `alumno_asignatura` ADD CONSTRAINT `alumno_asignatura_alumno_id_alumno_id` FOREIGN KEY (`alumno_id`) REFERENCES `alumno` (`id`), ADD CONSTRAINT `alumno_asignatura_asignatura_id_asignatura_id` FOREIGN KEY (`asignatura_id`) REFERENCES `asignatura` (`id`); http://www.fai.es Página 6 de 14
  • 7. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Desarrollo de un blog A continuación, se detallan los datos necesarios para el desarrollo del blog y las características que ha de cumplir en su ejecución. Datos necesarios Los datos necesarios para la conexión a la base de datos son: Host server.fai.es Base de datos curso_php_blog Usuario curso Contraseña curso_2010 La base de datos consta de la siguiente estructura: • Tabla user Contenido de los datos del usuario con privilegios. Columnas de la tabla: ▪ name Nombre del usuario. ▪ last_name Apellidos del usuario. ▪ username Nombre con el que el usuario accede a la aplicación. Este dato es único para cada usuario. ▪ password Clave con la que el usuario accede a la aplicación. • Tabla article Contenido de los artículos introducidos por usuarios privilegiados. Columnas de la tabla: ▪ created_at Fecha de registro de la publicación. ▪ title http://www.fai.es Página 7 de 14
  • 8. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Título de la publicación. ▪ value Contenido de la publicación. ▪ user_id Identifcador del usuario que ha publicado el nuevo contenido. • Tabla comment Contenido de los comentarios introducidos tanto por usuarios privilegiados como por usuarios anónimos. Columnas de la tabla: ▪ created_at Fecha de registro de la publicación. ▪ value Contenido de la publicación. ▪ article_id Identifcador del artículo al que hace referencia. Script de creación de la base de datos Se adjunta el script de creación de la base de datos a utilizar en este ejercicio, para aquellos que deseen realizar el ejercicio en su ordenador personal. -- -- Base de datos: `curso_php_blog` -- -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `article` -- DROP TABLE IF EXISTS `article`; CREATE TABLE IF NOT EXISTS `article` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `title` varchar(100) NOT NULL, `value` varchar(255) NOT NULL, `created_at` date NOT NULL, `user_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), KEY `user_id_idx` (`user_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; http://www.fai.es Página 8 de 14
  • 9. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `comment` -- DROP TABLE IF EXISTS `comment`; CREATE TABLE IF NOT EXISTS `comment` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `value` varchar(255) NOT NULL, `created_at` date NOT NULL, `article_id` bigint(20) NOT NULL, PRIMARY KEY (`id`), KEY `article_id_idx` (`article_id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- Estructura de tabla para la tabla `user` -- DROP TABLE IF EXISTS `user`; CREATE TABLE IF NOT EXISTS `user` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) NOT NULL, `last_name` varchar(100) NOT NULL, `username` varchar(30) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; -- -- Filtros para la tabla `article` -- ALTER TABLE `article` ADD CONSTRAINT `article_user_id_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`); -- -- Filtros para la tabla `comment` -- ALTER TABLE `comment` ADD CONSTRAINT `comment_article_id_article_id` FOREIGN KEY (`article_id`) REFERENCES `article` (`id`); http://www.fai.es Página 9 de 14
  • 10. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Requisitos del sistema El problema a resolver se compone de cuatro pantallas, dos públicas y otras dos protegidas por autenticación de usuario. Listado de artículos Esta pantalla es de acceso público para todos los usuarios de la red, y muestra el listado de artículos almacenados en el sistema en orden descendente de la fecha de creación. De cada artículo se muestra el título, seguido de la fecha de creación. Este título será un enlace a la pantalla de detalle de dicho artículo. Además de ésto, esta pantalla posee una columna a la derecha dónde se muestran los gadget de autenticación y publicaciones anteriores, los cuáles se explican más adelante en este documento. Detalle de un artículo Esta pantalla es de acceso público para todos los usuarios de la red, y muestra la información del artículo que se ha seleccionado en la pantalla de listado, a través de la cuál se ha accedido. Se detalla el título, descripción y fecha de creación del artículo. Acompañando a estos datos, se debe implementar un formulario para añadir comentarios asociados a dicho artículo. Además de lo anterior, se ha de visualizar el listado de comentarios que usuarios de la aplicación han añadido a través del formulario anterior. Estos comentarios se han de mostrar en orden descendente según la fecha en la que han sido introducidos. Replicando la funcionalidad de la pantalla de listado, también posee una http://www.fai.es Página 10 de 14
  • 11. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 columna a la derecha dónde se muestran los gadget de autenticación y publicaciones anteriores, los cuáles se explican más adelante en este documento. Nuevo artículo Esta pantalla es de acceso restringido, sólo se podrá acceder a esta pantalla tras autenticarse mediante el gadget de la columna de la derecha de las pantallas de listado y detalle de artículos. Esta pantalla muestra un formulario de creación dónde aparecerán los campos título y artículo o descripción. Al guardar este formulario se tomará la fecha actual para el campo create_at de la base de datos. Debajo de este formulario, han de aparecer el listado de artículos publicados por el usuario autenticado en orden descendente por fecha de creación. Cada uno de estos artículos de ese listado ha de mostrar el título del artículo http://www.fai.es Página 11 de 14
  • 12. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 seguido de la fecha de creación. El título ha de ser un enlace que redirija a la pantalla de edición de dicho artículo, la cuál se describe a continuación. Editar artículo Esta pantalla es de acceso restringido, es decir, sólo se puede acceder a esta pantalla, estando autenticado en el sistema. La pantalla es idéntica a la pantalla del formulario de nuevo artículo, salvo porque el formulario aparece completado con los datos del artículo que se está editando. http://www.fai.es Página 12 de 14
  • 13. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Gadget de autenticación Situado en las parte o columna de la derecha de las pantallas de listado de artículos y detalle de la parte pública del blog, hay que defnir una zona dónde los usuarios con privilegios puedan acceder al área privada. Esta zona vendrá defnida por dos cajas de texto en las que especifcar el nombre de usuario y la contraseña. Al pulsar el botón registrar, se han de comprobar los datos y en caso de ser correctos redirigir al formulario de nuevo artículo. Gadget de publicaciones anteriores En la columna de la derecha de las pantallas de listado de artículos y detalle de la parte pública, hay que defnir otra zona para las publicaciones anteriores. http://www.fai.es Página 13 de 14
  • 14. Av. Tenor Pedro la Virgen s/n (CADE) Córdoba (España) tlf. 957 40 61 40 Se ha de mostrar una lista los meses anteriores al actual y junto a estos el número de artículos que se han publicado en dichas fechas. http://www.fai.es Página 14 de 14