Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.01 KB | None | 0 0
  1. DESARROLLO DE APLICACIONES CON TECNOLOGIA WEB
  2. PROYECTO FINAL
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10. LLUIS CASAJUANA ALPENS
  11.  
  12.  
  13. 1. DESCRIPCIÓN DEL PROYECTO
  14.  
  15. Para la realización del proyecto de final de curso nos hemos planteado la realización de una página web completa en formato HTML con el uso de base de datos mediante código PHP y la inserción de estilos en CSS.
  16. La temática de la página se centra en la obra del director de cine sueco Ingmar Bergman siendo esta una ventana donde podemos acceder a datos e imágenes relacionadas con sus películas y con los actores que trabajaron con él. En la medida de lo posible hemos incluido también las películas completas disponibles en YouTube, restringidas en muchos casos por no estar libres sus derechos de autor.
  17. Básicamente nuestra página trabaja con dos tablas de datos, Actores y Películas, y a su vez usa una tercera tabla llamada Reparto para el cruce de datos de las tablas anteriores, adjudicando de esta manera a cada actor las películas donde ell@s aparecen y viceversa. Estas tablas las creamos en PHPMyAdmin en lenguaje MySQL. La tercera tabla es necesaria en tanto que la relación entre Actores y Películas es de ´n´ a ´n´.
  18. Nuestra pretensión ha sido crear una página dinámica que nos permita visualizar la información de las tablas de la forma más atractiva posible, haciendo uso del código PHP para crear las plantillas de Actor y Película donde se centraliza la información completa de cada tabla. A su vez, el código PHP nos permite crear links inteligentes que nos permiten interrelacionar las páginas de forma selectiva según las acciones del usuario.
  19. A continuación podemos ver las siete páginas que conforman nuestro sitio con una breve explicación del funcionamiento de cada una de ellas, prestando una atención especial aquellas partes de programación que nos han resultado más complejas.
  20.  
  21.  
  22.  
  23. 2. PÁGINAS
  24. 2.1 Index.html
  25.  
  26. Esta imagen corresponde a la Home de nuestro sitio. En ella aparecen los elementos de cabecera y pie que se repiten a lo largo de las siguientes páginas y que proporcionan unidad al proyecto en su conjunto.
  27. En primer lugar destacaremos el uso de un navegador con cinco elementos que enlazan con las cinco páginas básicas de nuestro sitio: Inicio (index.html), Biografia (biografia.html), Fotografias (mosaico.html), Filmografia (filmografia.php) y Estrellas (reparto.php). Este mismo navegador se repite a lo largo de todas las páginas de la misma manera como también se repite la fila de imágenes que hace las funciones de pie de página.
  28.  
  29.  
  30.  
  31.  
  32.  
  33. 2.2 Biografia.html
  34. En esta página podemos acceder a una biografía completa del director Ingmar Bergman que hemos extraído de Wikipedia.
  35. En ella repetimos los elementos de cabecera y pie que hemos marcado de entrada en la Home para mantener la unidad visual del proyecto.
  36. Esta página no contiene ningún enlace a ninguna otra página y por ello hemos usado simplemente código HTML de la misma forma como lo hicimos en la Home.
  37.  
  38.  
  39.  
  40.  
  41.  
  42. 2.3 Mosaico.html
  43.  
  44.  
  45. En esta página nos encontramos con un mosaico de imágenes que hemos insertado directamente con código HTML.
  46. En este caso no hemos hecho uso de la base de datos para recuperar las imágenes ya que estas no tenían cabida en ninguna de las tablas con las que estamos trabajando y nos hubiéramos visto forzados a crear una nueva tabla simplemente para incluir dichas imágenes.
  47. Entendemos que la inserción mediante HTML es suficiente en este caso.
  48.  
  49.  
  50. 2.4 Filmografia.php
  51. En esta página por primera vez hacemos uso de las tablas que hemos creado anteriormente y recuperamos los datos mediante la inserción de código PHP, concretamente visualizamos el campo Título de la tabla Películas y lo mostramos en pantalla de forma ordenada según el campo Año de la misma tabla Películas. A su vez, convertimos cada uno de los datos recuperados de la base de datos en un link que envía la selección del usuario a la página Pelicula.php (plantilla) que mostrará la información completa del título escogido.
  52. A continuación recogemos el código PHP incluido en la página:
  53. <?php
  54. header("Content-Type: text/html;charset=utf-8");
  55. $mysqli = new mysqli("localhost", "root", "", "bergman");
  56. mysqli_set_charset($mysqli, 'utf8');
  57. $consulta = "SELECT `Titulo` from `peliculas` ORDER BY `peliculas`.`Año` ASC";
  58. if ($resultado = $mysqli->query($consulta)) {
  59. echo "<h1>Filmografia</h1>";
  60. while ($fila = $resultado->fetch_row()) {
  61. echo "<h2><a href='pelicula.php?name=".$fila[0]."'>".$fila[0]."</a>";
  62. echo "</h2>";
  63. }
  64. $resultado->close();
  65. }
  66. $mysqli->close();
  67. ?>
  68. 2.5 Pelicula.php
  69. Esta página nos sirve como plantilla para todas las películas de nuestra base de datos, que siempre visualizaremos a través de esta estructura marcada en pelicula.php.
  70. En primer lugar recogemos los campos Título, Género, Año, Duración, Guión, Reparto y Sinopsis de la tabla Peliculas. A continuación recogemos el código iframe concreto para la inserción del vídeo que nos proporciona Youtube y que también recogemos de la base de datos seguido de las fotos que hemos asociado a cada una de las películas en la tabla Películas de nuestra BBDD.
  71. Aquí nos gustaría destacar la forma que hemos utilizado para poder separar los distintos elementos del campo Reparto que hemos introducido de forma lineal en la base de datos separados por comas con el objetivo de poder convertir cada uno de ellos en un link individual que enlazara con Actor.php.
  72.  
  73. Para el código de enlace con Actores.php hemos utilizado un ´if´ para que enlace sólo sea efectivo en caso de que haya coincidencia entre el nombre recogido y algún elemento del campo Nombre en la tabla Actores:
  74. <?php
  75. $nose=$_GET['name']; $mysqli = new mysqli("localhost", "root", "", "bergman");
  76. $consulta = "SELECT * from `peliculas` WHERE Titulo='".$nose."'";
  77. $tqr = mysqli_query($mysqli, $consulta); $row = mysqli_fetch_assoc($tqr);
  78. $thearray = explode(", ", $row['Reparto']);
  79. for ($i=0;$i<count($thearray);$i++){
  80. $consultaactor="SELECT `Nombre` FROM `actores` WHERE `Nombre`='".$thearray[$i]."'";
  81. $tqr2 = mysqli_query($mysqli, $consultaactor);
  82. $row2 = mysqli_fetch_assoc($tqr2);
  83. if ($row2['Nombre']=="") {
  84. echo "<a href=#>".$thearray[$i].", </a>";
  85. } else if ($i==count($thearray)-1) {
  86. echo "<a href='actor.php?name=".$thearray[$i]."'>".$thearray[$i]." </a>";
  87. }else {echo "<a href='actor.php?name=".$thearray[$i]."'>".$thearray[$i].", </a>";
  88. } } ?>
  89.  
  90.  
  91.  
  92. 2.6 Reparto.php
  93. En esta página recogemos los datos del campo Nombre y Perfil de la tabla Actores de tal forma que cada Nombre se convierte en un link directo hacia la plantilla Actor.php que cargará la información completa de la tabla Actores correspondiente a dicho Nombre seleccionado por el usuario.
  94. La fotografía de perfil la recogemos del campo Perfil de la tabla Actores de la base de datos y le añadimos un sombreado en CSS para separarla del fondo, como el resto de imágenes de nuestro sitio.
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105. 2.7 Actor.php
  106. Esta es la plantilla que usamos para cargar toda la información de la tabla Actor de nuestra base de datos y también es aquí donde hacemos uso de la tercera tabla reparto, resultado del cruce entre la tabla Actor con Película (relación de ´n´ a ´n´). De esta forma podremos saber en qué películas de Ingmar Bergman han participado los actores destacados en nuestra tabla Actores (que a dia de hoy no son todos los que aparecen en el campo Reparto de la tabla Película): Nombre, Nacimiento, Biografía, Fotografías y Apariciones, que es donde hacemos uso de la tabla Reparto. Además convertimos cada Título de Apariciones en un link asociado a la página Pelicula.php que carga toda la información de la tabla Películas como veíamos antes. Destacamos, de nuevo, el código que hemos usado para poder separar, en este caso, las distintas imágenes .jpg del campo Fotografías de la tabla Actores:
  107. <?php
  108. $nose=$_GET['name'];
  109. $mysqli = new mysqli("localhost", "root", "", "bergman");
  110. $consulta = "SELECT `Fotografias` from `actores` WHERE Nombre='".$nose."'";
  111. $tqr = mysqli_query($mysqli, $consulta);
  112. $row = mysqli_fetch_assoc($tqr);
  113. $thearray = explode(",", $row['Fotografias']);
  114. for ($i=0;$i<count($thearray);$i++){
  115. echo "<img src='media/".$thearray[$i]."'>";
  116. echo "<br>"; } ?>
  117. Aquí vemos como se destacan los enlaces de Apariciones cuando nos desplazamos por encima con el cursor:
  118.  
  119. Este sería el código de Apariciones, donde destaca de nuevo el uso de un ´if´ para conseguir que el último campo no lo escriba seguido de la coma que sí que llevan los demás:
  120. <?php
  121. $nose=$_GET['name'];
  122. $mysqli = new mysqli("localhost", "root", "", "bergman");
  123. $consulta = "SELECT `Pelicula` from `reparto` WHERE `Actor` ='".$nose."'";
  124. $cont=0; if ($resultado = $mysqli->query($consulta)) {
  125. $cuenta = $resultado->num_rows;
  126. while ($fila = $resultado->fetch_row()) {
  127. $cont++;
  128. if($cont==$cuenta){echo "<a href='pelicula.php?name=".$fila[0]."'>".$fila[0]." </a>";
  129. }else{ echo "<a href='pelicula.php?name=".$fila[0]."'>".$fila[0].", </a>";} } $resultado->close();}
  130. $mysqli->close();?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement