Ejercicios y prácticas Diseño Web, Acceso a base de datos y visualización de registros

Ejercicios y prácticas Diseño Web, Acceso a base de datos y visualización de registros

No. 23 de 23 de articulos. HTML5

El siguiente ejercicio y práctica resuelta, muestra la utilización del lenguaje PHP, para acceder a una base de datos MySQL, leer registros de una tabla de datos y mostrarlos en el navegador. El ejercicio y práctica resuelta se ha realizado con dos soluciones, una utilizando solo el lenguaje HTML y PHP, otra utilizando el lenguaje HTML, PHP y JavaScript.

Primer Ejercicio. Realizar el acceso a la base de datos y mostrar los registros utilizando HTML y PHP.

 

1º Crear la estructura del sitio web.

En primer lugar, se ha de crear la estructura de carpetas para el sitio web que se desea crear. Obviamente la estructura de carpetas que se crean para albergar un sitio web, depende muchas veces del propio criterio del programador o diseñador web, para este ejercicio se ha planteado una estructura simple.

Los ejercicios están realizados en un ordenador que corre Windows 10 y que, para poder probar las aplicaciones web, tiene instalado el programa XAMPP, el cual realiza las funciones de servidor HTTP y servidor MySQL. En este programa como sabemos, para poder probar los sitios web que diseñamos, se ha de crear una carpeta por cada sitio web, en el directorio o carpeta htdocs, que normalmente se encuentra situado en la ruta C:\xampp\.

Por lo tanto, estando situados en el directorio o carpeta htdocs, se ha de crear una primera carpeta, la cual vamos a denominar “ejercicio1”, y dentro de la misma, se han de crear las carpetas o subdirectorios: css, php, img, html y js. La estructura ha de quedar de forma similar a la que se muestra en la imagen.

2º Crear la base de datos.

Para crear la base de datos se pueden utilizar varios programas, como por ejemplo MySQL WorkBench, que permite realizar la gestión de las bases de datos MySQL, en mi caso yo utilizo un programa diferente, pero el concepto para todos es similar. El programa que utilizo es Navicat.

En Primer lugar, se ha de acceder con el programa al servidor de MySQL estableciendo la conexión necesaria y a continuación indicar que se quiere crear una base de datos, la cual se va a denominar “Ejercicio1”.

Una vez abierta la conexión una forma simple con el programa de crear una base de datos, es realizar un clic con el botón derecho del ratón. Y seleccionar la opción denominada “New Database”

Al pulsar sobre la opción, se ha de presentar un cuadro de dialogo en el cual se ha de especificar, el nombre de la base de datos, el juego de caracteres a utilizar y la intercalación del juego de caracteres a utilizar. En el nombre de la base de datos “Database Name”, especificamos “Ejercicio1” como nombre, en el juego de caracteres “Character Set”, se ha de seleccionar la opción denominada “utf8 – UTF-8 Unicode”, y para la opción de intercalación “Collation”, se ha de especificar la opción denominada “utf8_spanish_ci””

Para finalizar la creación se ha de pulsar sobre el botón “Ok”, y en la parte izquierda del programa se puede observar como aparece la base de datos recién creada.
Seguidamente se ha de crear la tabla de datos que se quiere utilizar posteriormente. Para realizar esta acción en primer lugar se ha de indicar que se quiere abrir la base de datos, para realizar este proceso se ha de hacer un doble clic sobre el nombre de la base de datos, se puede observar que el icono de la misma, adopta un color verde indicando de esta forma que está abierta y activa.

Como se puede observar en la imagen anterior, al abrir la base de datos, en la parte izquierda aparece una nueva sección denominada Tablas “Tables”, y en la barra de herramientas, aparece un botón que permite crear una nueva tabla denominado “New Table”. Al pulsar el botón se entra en la sección del programa correspondiente a la edición de los campos de la tabla

Ahora se han de definir los campos que se quieren crear en la tabla, en este ejercicio se plantea la creación de una tabla que contenga información sobre usuarios. La cual ha de tener los campos y tipos que se especifican a continuación

Los campos especificados son: identificador, nombre, apellidos, fecha_nacimiento, localidad y provincia, como se puede apreciar el tipo de dato para todos es varchar (carácter variable), con una longitud variable dependiendo del campo, a excepción del campo fecha_nacimiento, el cual es de tipo date (fecha).
Se puede ver también que, sobre el campo identificador, en la última columna se ha realizado un clic, de esta forma se indica que el campo es la clave principal de la tabla y se comprueba ya que aparece un símbolo correspondiente a una llave.
Una vez especificados los campos y sus tipos, se cierra la pestaña de creación de la base de datos o se pulsa el botón Save, en la barra de herramientas, para que se solicite el nombre de la tabla e indicar de esta forma que el nombre que se quiere asignar es usuarios.

Ahora para poder posteriormente comprobar que el ejercicio y práctica a realizar funciona correctamente, se han de introducir en la tabla 4 o 5 registros de datos. Para ejecutar esta acción se ha de realizar un doble clic sobre el nombre de la tabla

Crear los archivos del sitio

Una vez creada la base de datos, se ha de crear la primera página que compone el sitio web, el nombre que se suele dar a esta página es index.htm, index.html o index.php, se utiliza este nombre, ya que por defecto normalmente el servidor busca estos nombres y si los encuentra carga la página automáticamente, sin tener que especificar en la url el nombre de la página a la que acceder.

Como la página que se quiere crear va a tener acceso a la base de datos y ha de mostrar los registros que lea de la tabla de usuarios, esta primera página se va a denominar index.php.

En esta primera página se ha de realizar la conexión con la base de datos, por ello se incluyen llamadas a dos archivos configuración.php y acceso.php, ambos se han de crear en el subdirectorio php de nuestro sitio. El primer archivo se encarga de establecer los valores necesarios para poder realizar la conexión con el servidor MySQL, mientras que el segundo realiza la conexión con MySQL según los datos de configuración especificados.

El archivo index.php, ha de contener el siguiente código.

<?php
    // realizar el enlace con el archivo de configuración
    require_once("./php/configuracion.php");
    // realizar el enlace con el archivo de conexión
    require_once("./php/acceso.php");
?>
<!DOCTYPE HTML>
<html>
<head>
  <title>Ejercicio 1 - MySQL</title>
  <meta charset="utf-8">
  <meta name="author" content="José Sáez">
  <meta name="generator" content="www.aprendoencasa.com">
</head>
<body>
<h1 class="titulo">Ejercicio 1 - Acceso BD MySQL</h1>
<!-- acceso a los registros de la tabla de usuarios y visualización de los mismos
 utilizando una tabla html -->
 <table>
     <thead>
         <tr>
               <th>Id.</th>
               <th>Nombre</th>
               <th>Apellidos</th>
               <th>Localidad</th>
               <th>Provincia</th>
               <th>F. Nacimiento</th>
         </tr>
     </thead>
     <tbody>
         <?php
            // crear la consulta de acceso a los datos de usuarios
            $consulta = "SELECT * FROM usuarios";
            // a continuación se envia la consulta al servidor MySQL
            $resultado = mysqli_query($conexion,$consulta);
            // se recorren los registros visualizando una fila de tabla
            // por cada uno de los registros existentes.
            while( $fila = mysqli_fetch_assoc($resultado) ) {
                echo "<tr>";
                    echo "<td>".$fila['Identificador']."</td>";
                    echo "<td>".$fila['Nombre']."</td>";
                    echo "<td>".$fila['Apellidos']."</td>";
                    echo "<td>".$fila['Localidad']."</td>";
                    echo "<td>".$fila['Provincia']."</td>";
                    echo "<td>".$fila['Fecha_Nacimiento']."<td>";
                echo "</tr>";
            }
         ?>
     </tbody>
 </table>
</body>
</html>

 

En la primera sección del código anterior.

<?php
    // realizar el enlace con el archivo de configuración
    require_once("./php/configuracion.php");
    // realizar el enlace con el archivo de conexión
    require_once("./php/acceso.php");
?>

Se realiza el enlace con dos archivos en php, que son los encargados de realizar la configuración de los datos de acceso al servidor MySQL y la conexión con el motor de base de datos.
El primer archivo con el que se realiza el enlace, es con configuracion.php, el cual se ha de guardar en el directorio o carpeta php, y el contenido del mismo ha de ser el siguiente.

<?php
// Se establecen las variables con los datos de acceso
$servidor = "localhost";
$usuario = "root";
$contra = "";
$basedatos = "ejercicio1";
?>

En este archivo se establecen las variables que sirven para realizar la conexión con el motor de MySQL del programa servidor XAMPP, los valores que se han de indicar por defecto son: localhost, para el nombre del servidor que se almacena en $servidor, root para el nombre de usuario, que se almacena en $usuario, “” (nada) como valor de contraseña, ya que por defecto el programa XAMPP no la establece, este valor se asigna a $contra, y por último ejercicio1 como nombre de la base de datos que se almacena en la variable $basedatos.
Seguidamente y volviendo al archivo index.php, se establece el enlace con el archivo que realiza la conexión con la base de datos de MySQL, el cual se denomina acceso.php, y ha de contener el siguiente código.

<?php
// se establece la conexion con la base de datos.
$conexion = mysqli_connect($servidor,$usuario,$contra,$basedatos);
// se evalua si no se ha producido la conexión en ese caso se finaliza
// la ejecución del programa
if( !$conexion ) {
    die("Error en la conexión con la base de datos");
}
?>

El código que se ha tecleado, permite la conexión con la base de datos, para esta acción se utiliza el comando de PHP, mysqli_connect, el cual tiene la siguiente sintaxis.
$variable_enlace = mysqli_connect(“servidor”,”usuario”,”contraseña”,”basedatos”);
La orden realiza el establecimiento de conexión según la configuración de datos especificadas y en caso de tener éxito en la conexión se utiliza $variable_enlace, como acceso a la misma, en caso de no producirse la conexión la variable de enlace contendrá un valor falso.
Debido al valor devuelto por la orden anterior, se utiliza posteriormente un si condicional, el cual pregunta si “no es verdadera” la variable de enlace, y en caso de no serlo produce la parada del programa utilizando el comando die.
Una vez obtenida la conexión, analizamos el siguiente código dentro de la página index.php, que es el encargado de acceder a la base de datos y leer los registros de datos.

<?php
            // crear la consulta de acceso a los datos de usuarios
            $consulta = "SELECT * FROM usuarios";
            // a continuación se envia la consulta al servidor MySQL
            $resultado = mysqli_query($conexion,$consulta);
            // se recorren los registros visualizando una fila de tabla
            // por cada uno de los registros existentes.
            while( $fila = mysqli_fetch_assoc($resultado) ) {
                echo "<tr>";
                    echo "<td>".$fila['Identificador']."</td>";
                    echo "<td>".$fila['Nombre']."</td>";
                    echo "<td>".$fila['Apellidos']."</td>";
                    echo "<td>".$fila['Localidad']."</td>";
                    echo "<td>".$fila['Provincia']."</td>";
                    echo "<td>".$fila['Fecha_Nacimiento']."<td>";
                echo "</tr>";
            }
         ?>

En primer lugar, se ha de establecer la consulta que se quiere ejecutar en lenguaje SQL y asignarla a la variable $consulta. La consulta ha de ser “SELECT * FROM usuarios”. Que significa “SELECCIONA todosloscampos DE latablausuarios”.

Seguidamente, se envía la consulta al servidor de MySQL para realizar esta acción se ha de ejecutar el comando mysqli_query, el cual tiene la siguiente sintaxis.

$variable_resultado = mysqli_query($variable_enlace,$consulta_a_ejecutar);

El comando anterior envía al servidor MySQL la orden a ejecutar, si la orden no tiene la sintaxis correcta, el servidor MySQL, devuelve un error o advertencia, en caso de que la orden sea correcta el servidor MySQL, devuelve un objeto que contiene los registros que han sido afectados por la orden y los almacena en la variable $variable_resultado. Se ha de tener en cuenta que no se puede acceder directamente a un objeto de tipo result, por lo que se han de utilizar comandos para extraer la información del resultado.

Los comandos que se pueden utilizar para extraer los registros del resultado son mysqli_fetch_array y mysqli_fetch_assoc, la sintaxis y explicación de los mismos es la siguiente.

$variable = myqsli_fetch_array($variable_resultado)

$variable = mysqli_fetch_assoc($variable_resultado)

En ambos casos, la orden extrae un registro del objeto result obtenido y lo asigna a $variable, la cual se convierte de forma automática en un array o matriz que contiene todos los datos del registro leído. En el caso de mysqli_fetch_array, la matriz que se crea, se crea aplicando valores numéricos a los índices, mientras que en el caso de mysli_fetch_assoc, la matriz que se crea contiene índices alfanuméricos que se corresponderán con los nombres de campos de la tabla MySQL leida. A este último tipo de array se les conoce como arrays asociativos, por no manejar índices numéricos y si alfanuméricos.

Una vez ejecuta la orden en $variable, se habran almacenado los datos correspondientes al registro leído y estos datos pueden ser accedidos utilizando los índices correspondientes, como se muestra en los siguientes ejemplos.

echo $variable[0];

echo $variable[‘nombrecampotabla’];

                En el primer caso se accede al dato utilizando el índice numérico y en el segundo el índice asociativo. En el caso de que las ordenes de extracción no consigan leer un registro de la variable objecto de tipo result, bien porque no existen registros que leer o bien porque se ha leído ya el último de los registros del resultado, la variable que se utilice para guardar los datos tomara un valor FALSO.

Es por este motivo que se utiliza un bucle WHILE para recorrer todos los registros del resultado, de esta forma es como preguntar. “Mientras que haya registros en resultado, lo extraes, lo guardas y lo visualizas”. Cuando se llegue al final al no leerse ningún registro se almacena un valor FALSO y el bucle evalúa su condición MIENTRAS QUE SEA VERDADERO, que al no cumplirse hace que finalice el bucle.

Dentro del bucle, se intercala el código HTML y PHP necesario para visualizar con una estructura de página web, los datos obtenidos. En este ejercicio se puede apreciar que se ha utilizado mysqli_fetch_assoc y por dicho motivo en el bucle se utiliza para rescatar los datos el nombre de la variable especificando como índice el nombre que tiene el campo en la base de datos.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies