BASES DE DATOS Y PHP
Esta práctica la vamos a ejecutar sólo sobre el servidor:
Tenemos la máquina limpia, por lo que vamos a tener que comenzar configurando las tarjetas de red:
Externamente:
Internamente:
Como no nos muestra bien todas las tarjetas, vamos a seleccionar la eth0:
Vemos que ambas tarjetas ya están bien configuradas, ahora tenemos que configurar los repositorios, pero antes debemos hacer una copia de seguridad por si se estropea el archivo:
Actualizamos:
Ahora empezaremos a instalar paquetes:
Escritorio (tarda bastante):
Terminal:
Procesador de textos:
Navegador:
Ahora reiniciamos:
Ponemos la contraseña y entramos:
Entramos en la terminal e instalamos:
LAMP= Linux(debian) + Apache+Mysql+Phpmyadmin:
Cuando instalamos mysql-server y phpmyadmin nos va a pedir contraseñas, en nuestro caso siempre hemos puesto "toor01", pero, puedes elegir la que quieres poner.
Al instalar phpmyadmin también te aparecerán las siguientes pantallas:
En la primera seleccionamos apache2 y aceptamos y en la segunda sí y aceptamos:
(El resto de pantallas son para pedir contraseñas)
Para poder tener la pantalla completa, además de otras ventajas, vamos a instalar la Guest Addition:
Las Guest Additions nos ofrecen las siguientes características:
- Integración del cursor del ratón. Esto implica que podemos mover el ratón libremente entre la máquina virtual y la real sin necesidad de pulsar ninguna tecla para capturarlo/liberarlo. Hace que sea mucho más cómodo el usar la máquina virtual.
- Mejor soporte de vídeo. En principio el controlador de vídeo virtual que utiliza VirtualBox para cualquier sistema operativo virtualizado proporciona solamente funciones básicas. Sin embargo, el driver de vídeo que se instala con las Guest Additions nos ofrece no sólo una buena aceleración de vídeo, sino también resoluciones más altas.
- Sincronización horaria. Gracias a las Guest Additions, VirtualBox se asegura de que la hora del sistema virtualizado esté mejor sincronizada.
- Carpetas compartidas. Una de las características más importantes es la de las carpetas compartidas porque es una forma fácil de poder intercambiar archivos entre el sistema real y el virtualizado.
- Ventanas sin costuras. Esta característica consiste en mostrar una ventana del sistema virtualizado como si formara parte de nuestro sistema real.
- Portapapeles compartido. Al igual que las carpetas compartidas el poder compartir el portapapeles es de gran utilidad. Gracias a esta característica podemos copiar y pegar independientemente de que estemos en la máquina virtual o real.
- Entrada automática en Windows.
Vamos a dispositivos /Insertar imagen desde cd de las Guest Additions
(puede que dé error, no te asustes)
Reinciamos para que se apliquen las Guest Additions:
Ahora vamos a acceder a PhpmyAdmin:
Tenemos que seleccionar el idioma, el usuario con el que vamos a trabajar (root) y la contraseña (toor01), después pulsamos "Continuar":
Vamos a tomar un esquema de la asignatura Gestión de Bases de Datos, que corresponde a una empresa de repartos, por lo que a la Base de Datos la llamaremos "reparto":
Es importante tener en cuenta que PhpMyadmin distingue entre mayúsculas y minúsculas, por lo que todos nuestras tablas irán en minúsculas para evitar errores:
Vamos a empezar a crear la Base de Datos, para ello pulsamos sobre la pestaña,
y luego crear nueva Base de datos, indicamos el nombre y pulsamos sobre crear:
Una vez creada la base de datos, la veremos en la lista de desplegables que aparece a la izquierda:
Pulsamos sobre ella y ya nos deja crear las tablas:
A continuación vamos a crear las tablas:
*empleados:
Dentro de la tabla vamos a poner los contenidos:
*repartos:
Dentro de la tabla vamos a poner los contenidos:
Cuando creamos una nueva tabla, nos aparecen en la pantalla las que hay creadas:
*tiendas:
Dentro de la tabla vamos a poner los contenidos:
*localidades:
Dentro de la tabla vamos a poner los contenidos:
A continuación. debemos rellenar las tablas con los datos. Lo haremos pinchando sobre la tabla (en el lateral) para que nos figure la pestaña insertar, que es la que nos va a permitir introducir los datos:
(Sólo pondré una imagen por tabla de cómo se introducen los datos, en el primer campo no escribo nada, dado que es AI, es decir autoincremental)
Cuando introducimos los datos nos sale la sentencia sql:
Si pulsamos sobre la pestaña examinar, nos aparecerán los registros:
Ponemos datos en todas las tablas:
Los datos de las tablas serían:
El siguiente paso es hacer la página html que nos va a mostrar las tablas. Vamos a la terminal, a la raíz para entrar en cd /var/www si trabajas con wheezy, si trabajas con jessie cd /var/www/html:
Abrimos con el editor de textos nuestra página:
Ampliamos el código para poder verlo al detalle:
Ahora nos vamos al navegador, ponemos localhost/empleados.php (el nombre de nuestra página html):
A continuación vamos a conseguir que al pulsar sobre el código de empleado, nos aparezcan los repartos que ha hecho. Dentro de la página empleados vamos a añadir una línea:
<a href= </a> es la parte que nos hará el enlace
'repartos.php es la página con la que vamos a enlazar
?codigoe es la referencia que va a tomar de la página enlazada
$fila['codigoe'] es el valor de la tabla que le indiquemos que va a seleccionar
Ampliamos el código, para que podamos ver dónde la insertamos:
Ahora vamos al navegador, ponemos localhost y el nombre de la página y, podemos ver que los enlaces se han activado:
Si pinchamos sobre el 1, por ejemplo, en la URL aparecerá:
Ahora construiremos la página html de repartos, para que cuando pinchemos sobre el enlace nos los pueda mostrar:
Ampliamos el código, para poder reparar en él:
Lo que tenemos distinto en esta página es:
Es la variable en la que vamos a recoger el valor que pasamos de la otra página.
En la consulta, de la tabla repartos, queremos que nos dé aquellos registros en los que códigoe y el valor que contenga la variable $rep (que viene de otra página) coincidan.
Entonces, estamos en la tabla empleados:
Pinchamos sobre cualquiera de los códigos de empleados y nos va a mostrar todos los repartos que este empleado o la empleada, según el caso, haya realizado:
Ahora vamos a crear en la tabla repartos tres opciones:
*Añadir un nuevo reparto.
*Modificar, por si nos hubiéramos confundido al introducir algún dato.
*Borrar, por si ese reparto no pertenece a la empresa.
Veamos el código:
Vamos a extraer la parte nueva y explicar qué es lo que hace:
Si la variable opc existe va a tomar uno de estos valores:
*nuevorp
*borrar
*modificar
Si toma el valor "nuevorp" pintará por pantalla: Nuevo/a
Si toma el valor "borrar" pintará por pantalla: Borramos
Si toma el valor "modificar" pintará por pantalla: Editamos
Si no existe la variable opci (ni nuevorp, ni borrar, ni modificar) se va a ejecutar el código que viene a continuación del else:
El primer echo, lo que hace es darle un título a la tablaa.
El segundo echo es un enlace que nos va a llevar a la misma página, pero con la opción nuevorp, indicará NUEVO/A.
Veamos qué hace:
Ejecutamos en localhost y nos va a mostrar:
Ahora, vamos a pinchar sobre la opción NUEVO-A:
Nos muestra:
La gran potencia que tiene PHP es que es independiente del número de registros, siempre vamos a poder añadir nuevos registros, o eliminarlos, y el mismo código se va a mantener.
Ahora vamos a por las otras dos opciones, las queremos dentro de la tabla, ya que si queremos borrar, será un registro concreto, y si queremos modificar, también será un registro concreto( necesita el identificador del reparto. Dentro de la tabla que tenemos después del else, vamos a añadir:
Que son enlaces a la misma página, ya que si pinchamos sobre ellos tomará un valor opci, por lo tanto entrará en el if:
Si pulsamos sobre la opción BORRAR del reparto con código 1:
Si pulsamos sobre la opción EDITAR del reparto con código 3:
Y el siguiente paso es trabajar con las opciones:
Nuevo-a: va a necesitar un formulario para introducir los datos, pero vacío.
Muestra:
Internamente trabajamos con el código de empleado, pero como es más común que se conozca a los-as empleados-as por su nombre, reflejamos el nombre del/a empleado/a.
Lo mismo sucede con el nombre de la tienda, internamente trabajamos con su código, pero reflejamos su nombre, porque es más cómodo.(Para entender mejor cómo funciona lo indico en el formulario).
Cuando entramos en nuevo reparto, se abren dos deplegables, uno que nos ofrece la posibilidad de elegir la tienda, y otro que nos ofrece la posibilidad de elegir el empleado o la empleada.(Ya modifico el código para que se identifiquen los empleados y la tienda con el nombre, pese a que internamente seguiremos trabajando con el código de empleado y de tienda, son las claves primarias de la tabla empleados y de la tabla tienda).
Comprobamos el efecto:
Vemos el desplegable de las tiendas:
Veamos el efecto:
Borrar: va a necesitar un mensaje que confirme que se ha borrado.
Modificar: va a necesitar un formulario, pero con los campos rellenos
Vamos a modificar ahora el código, para que cuando vayamos a seleccionar un empleado o una empleada, nos aparezca preseleccionado, su nombre y la tienda a la que repartió por última vez:
Seleccionamos la porción de código que hará que se preseleccione un empleado o una empleada, para explicarlo.
Empezamos poniendo una condición if, si $codigoe que es el código de empleado, coincide con el codige de $fila, entonces, va a mostrar el preseleccionado, porque está marcado con selected, si no coincidiera, mostraría el resto.
Vemos el efecto:
Lo mismo ocurre con tienda:
Vamos a utilizar campos ocultos, existen, pero no se van a mostrar, son aquellos que dentro de los formularios designamos con 'hidden'.

No hay comentarios:
Publicar un comentario