lunes, 26 de mayo de 2014

Ejemplo de formularios de inserción, edición y consulta para PHP y MySQL

La nueva versión del programa PHP de prueba "test2-phpmysql" incluye nuevos archivos con las funciones de inserción, edición y consulta, con el objetivo de comprender los mecanismos de interacción con la base de datos MySQL, y demostrar los principios y funciones de programación básicos para la configuración de los formularios que hacen posible la gestión de las bases de datos profesionales.

Descargar test2-phpmysql.zip

Algunos aspectos relevantes para comprender el funcionamiento del programa.
  • Almacenar resultados de una consulta MySQL en una variable denominada $results
  • Empleo de la estructura de control condicional "while"
  • Representar cada registro de los resultados obtenidos en la consulta con la función "mysql_fetch_assoc"

Diseñando formularios en PHP: el interfaz de MySQL

A diferencia de MS Access, que permite la creación de formularios integrados en el propio programa, MySQL no consta de tales capacidades. Para ello es necesario diseñar los formularios en HTML y PHP de forma tal que permitan la interacción entre el usuario y el sistema de base de datos en los puntos y aspectos que se definan. Éstos pueden ser los siguientes:

Insertar registros
La función insertar registros queda patente en todos los sistemas de información y bases de datos. Siempre será necesario alimentar las tablas de la BD de forma manual o automática. En tales casos, se emplean los siguientes elementos:
  • Formulario HTML que contenga los campos de la base de datos. Los campos deben contener la denominación correspondiente con el atributo "name=" con la finalidad de que la información enviada a través del formulario pueda ser recuperada con la variable $_POST o $_GET. Contendrá además un botón para el envío de datos. 
  • Estructura condicional en PHP que permita detectar si el usuario envió el formulario. Por ejemplo: if($_POST[insert]){ instrucciones a ejecutar + SQL }
  • Instrucción SQL "INSERT INTO tabla SET campo1='valor1', campo2='valor2'" que permite la introducción o adición de un nuevo registro en la tabla de la base de datos que se especifique.
  • Método de redirección Javascript para que una vez insertado el registro la página del formulario sea actualizada.
Modificar y eliminar registros
La función de modificar resulta esencial para la actualización de registros su edición y tratamiento. Para elaborar un formulario de edición de registros se necesitan los siguientes elementos:
  • Consulta SQL para mostrar todos los registros de la tabla especificada. La instrucción empleada es "SELECT * FROM tabla WHERE condición" que permite la selección de todos los registros de la tabla que cumplan la condición que se establezca.
  • Estructura condicional en PHP "while" que permita recorrer todos los resultados obtenidos con la consulta, uno a uno, imprimiendo formularios para cada uno de los registros. 
  • Los formularios para cada uno de los registros, constarán de un campo oculto que almacenará el número de identificación del registro. El identificador permitirá indicar a posteriori sobre qué registro se realizarán los cambios efectuados. Además cada valor de cada campo tendrá que ser recogido en un campo de texto o área de texto del formulario a fin de que pueda ser modificable. Finalmente, el formulario de cada registro, constará de dos botones; el primero para el envío de datos que identifique que el registro será modificado con los nuevos valores que el usuario hubiese especificado; el segundo para indicar que el registro será eliminado de la base de datos
  • Cuando el usuario modifica uno de los formularios y hace clic en el botón de actualizar o modificar el registro, se necesita una estructura condicional en PHP que permita detectar si el usuario envió el formulario, por ejemplo: if($_POST[edit]){ instrucciones a ejecutar + SQL } y  if($_POST[delete]){ instrucciones a ejecutar + SQL }
  • Instrucción SQL para la acción de edición: "UPDATE tabla SET campo1='valor1', campo2='valor2' WHERE id='$_POST[id]'" que permite la modificación de los valores de los campos del registro especificado en la cláusula condicional WHERE. Es decir, la actualización o cambio de los valores se produce cuando el campo "id" de la tabla sea igual al valor enviado desde el formulario con el campo oculto que almacena el identificador del registro. 
  • Instrucción SQL para la acción de eliminación: "DELETE FROM tabla WHERE id='$_POST[id]'" que permite eliminar el registro de la tabla cuyo campo "id" sea igual al valor enviado desde el formulario con el campo oculto que almacena el identificador del registro.
Buscar registros
La función buscar registros debe ser incluida en todas las tablas y no únicamente la capacidad de filtrado por campos. En muchos casos las tablas principales requieren métodos de consulta avanzados que permitan procesar consultas a texto completo. En este aspecto MySQL proporciona prestaciones a tener en cuenta. Para elaborar un formulario de consulta de registros se necesitan los siguientes elementos:
  • Formulario de consulta HTML con un campo de texto para que el usuario exprese la consulta y un botón para lanzar o ejecutar dicha consulta.
  • Estructura condicional en PHP "if" que permita detectar que la consulta fue efectuada por el usuario al presionar el botón buscar. Por ejemplo: if($_POST[search]){ instrucciones a ejecutar + SQL }
  • Instrucción SQL para la acción de buscar: "SELECT * FROM tabla WHERE indexer LIKE '$_POST[query]'" que permite la comparación de la cadena de consulta del usuario con respecto al campo de indexación "indexer".
  • Estructura condicional en PHP "while" que permita recorrer todos los resultados obtenidos con la consulta, uno a uno, imprimiendo formularios para cada uno de los registros. 

Ejemplo de archivo de instalación y configuración PHP+MySQL

A partir del archivo de configuración (o conexión con BD) y del archivo de instalación con las especificaciones técnicas de las tablas y sus campos se hace posible el desarrollo de una primera prueba de funcionamiento del binomio PHP-MySQL. 


Para entender el funcionamiento del programa de prueba test1-phpmysql.zip es necesario comprender  los siguientes aspectos:
  • Código Javascript especializado en redirección de páginas web para su actualización
    <script language='javascript'>window.location.href='index.php';</script>

Diseñando el archivo de instalación de base de datos MySQL en PHP

El desarrollo de bases de datos en entornos AMP (Apache, MySQL y PHP) no sólo requieren del empleo de la herramienta de gestión PhpMyAdmin. En la mayor parte de los casos, se necesitan programas PHP que permitan la instalación o creación automática de la base de datos con las características determinadas por el documentalista en su pliego de especificaciones. A continuación se explican distintos fragmentos de un archivo de instalación. 

Parte1. Creación del archivo de configuración
El programa de instalación debe tener en cuenta que el nombre de usuario, contraseña, servidor de instalación y nombre de la base de datos que compondrán el archivo de configuración. Por tanto se debe crear un formulario que sea capaz de recoger dicha información, procesarla y crear un archivo independiente con los datos señalados. Éstos serán utilizados en sucesivos pasos de instalación como la creación de la base de datos y la instalación de las tablas y sus campos.

Parte2. Instalación de la base de datos
Cualquier operación en MySQL se lleva a cabo en PHP con la función "mysql_query()" que permite introducir cualquier tipo de sentencia, consulta u operación con la base de datos. En este caso, se observará que las consultas SQL coinciden con las experimentadas anteriormente en PhpMyAdmin, lo que significa que son igualmente interpretadas cuando el archivo PHP es ejecutado en el servidor Apache.

mysql_query("CREATE DATABASE nombre-base-de-datos ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci",$con);
echo "<div><li>La base de datos <b>nombre-base-de-datos</b> fue creada correctamente.</li></div>";

En el código anterior se observa la función mysql_query que contiene la consulta SQL que se ejecutará en el archivo de instalación. En color rojo se observa una variable $con que corresponde a los datos de conexión o configuración básicos para acceder a MySQL y poder ejecutar la consulta SQL. Finalmente las últimas líneas corresponden a la función "echo" empleada para imprimir en pantalla un mensaje que indique al usuario que se creó la base de datos correctamente. 

Parte3. Instalación de la tabla y sus campos
Una vez creada la base de datos, se deben crear las distintas tablas de la misma. Para ello es necesario en primer lugar seleccionar la base de datos en la que se realizará la operación. En este sentido se emplea la función "mysql_select_db" que contiene el nombre de la tabla y la variable $con con los datos de conexión para acceder a MySQL. Seguidamente, MySQL interpreta que la operación que se efectuará será realizada en la base de datos ya seleccionada. A continuación se observará que se vuelve a emplear la función "mysql_query()" que siguiendo el mismo patrón que en el caso anterior, contiene la consulta SQL correspondiente a la creación de una tabla denominada "catalogue" con todos los campos especificados y sus correspondientes características. El ejemplo corresponde a un caso real de instalación de una tabla bibliográfica.

mysql_select_db("nombre-base-de-datos", $con);
mysql_query("CREATE TABLE catalogue (
id                         INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id),
idadmin                VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
date_entry            VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
date_update         VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
uri                        VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
typedocid             VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
typedoc                  VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
subtypedoc               VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
signature_decimal         VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
signature_surname        VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
signature_head          VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
title                         VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
title_alf                 VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
subtitle               VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,      
othertitle           VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,  
uniformtitle          VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
uniformtitle_alf      VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
translatetitle          VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
language           VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
edition             VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
authorities           TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
authorities_alf          VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawtype                 VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawdate              VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawcode           VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawcountry      VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawregion           VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
lawcity                VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
periodicity           VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
pubplace           VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
pubdate            VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
date1              VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
date2             VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci,
serie              VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
nserie             VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
physical           VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
npages            VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
ncms            VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
summary       TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
fulltext1           MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
fulltext2           MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
fulltext3           MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
fulltext4           MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
fulltext5           MEDIUMTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
notes               TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
rights               VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
rightscases       VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimalid1        VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimalnumber1  VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimaltext1          VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimalid2              VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimalnumber2  VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
decimaltext2          VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_general_ci,
categoryid           VARCHAR(25) CHARACTER SET utf8 COLLATE utf8_general_ci,
category1           VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
category2           VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
category3           VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
category4           VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
bagtags               TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
edocument            VARCHAR(500) CHARACTER SET utf8 COLLATE utf8_general_ci,
urlresources          TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
reference           TEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
cite                     VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationid1           VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtype1          VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationprop1          VARCHAR(150) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtitle1          VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationid2           VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtype2          VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationprop2          VARCHAR(150) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtitle2          VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationid3           VARCHAR(10) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtype3          VARCHAR(50) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationprop3          VARCHAR(150) CHARACTER SET utf8 COLLATE utf8_general_ci,
relationtitle3          VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_general_ci,
indexer            LONGTEXT CHARACTER SET utf8 COLLATE utf8_general_ci,
FULLTEXT(indexer)
) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci
",$con);
echo "<div><li>La tabla <b>catalogue</b> fue creada correctamente.</li></div>";


Aprendiendo a crear páginas PHP con conexión a base de datos MySQL

El complemento perfecto de la base de datos MySQL es el lenguaje de programación PHP, Hypertext Pre-processor, orientado al desarrollo de aplicaciones y páginas web dinámicas. PHP es habitualmente empleado para crear aplicaciones con interfaz basado en formularios web que pueden interactuar con las tablas y bases de datos de MySQL. Gracias a esta posibilidad es posible crear buscadores, gestores de contenidos, blogs, wikis y prácticamente cualquier sistema de información. El lenguaje de interacción con la base de datos MySQL es el Structured Query Language, también conocido como SQL.

Teniendo en cuenta estas consideraciones, se hace indispensable conocer algunos aspectos básicos de la programación en lenguaje PHP y especialmente de su conexión con la base de datos MySQL. Es lo que se conoce como archivo de configuración que almacena la información necesaria para acceder a MySQL mientras se ejecute el programa diseñado en PHP y por ende realizar todas las consultas que se deseen.

Archivo de conexión
Se denomina archivo de conexión, aquel que contiene la información básica para acceder como usuario de la base de datos principal, en este caso MySQL. Tal como se puede observar a continuación, existe una función denominada "mysql_connect()" que contiene diversos datos indispensables para la conexión con la base de datos. En primer lugar la dirección IP o nombre DNS del servidor donde se encuentra instalada la BD. Si se trata de una instalación local como puede resultar el caso de Server2Go, el valor a introducir es "localhost" o "127.0.0.1" o bien "127.0.0.1:4001". Seguidamente aparecen las cadenas de caracteres "root" y "root" que especifican en el siguiente orden, el usuario y la contraseña de acceso a la BD. Habitualmente cuando se tratan de instalaciones locales, el usuario y contraseña siempre suelen ser las especificadas, dado que resulta una convención entre los programadores para referirse a tal caso. Finalmente otro valor de gran importancia es el nombre de la base de datos, que como puede observarse es almacenado en una variable que lo identifica explícitamente. Véase Art2. Recuperación de información en base de datos. En: Aplicaciones Documentales de la Recuperación de Información.

<?php  
$con = 
mysql_connect('localhost', 'root', 'root') or die ('error: no se pudo conectar');
$database = '
nombre-base-de-datos';
?>

Estas líneas configuran un sencillo archivo que puede tomar distintos nombres, como por ejemplo "config.php", "connect.php", "info.php" siendo utilizado en todos los casos siempre que es necesaria cualquier operación con la BD. La forma de implementarlo en otros programas PHP es la siguiente:

<?php
include("config.php");
// 
--> Instrucciones de consulta SQL <--
?>

En este caso se muestra el código de una página PHP que incluye las instrucciones del archivo de configuración o conexión anterior, para posteriormente escribir las instrucciones de consulta SQL que se estudiarán en sucesivos capítulos. El método de inclusión de otras páginas es denominado método include. Véase Art13. Diseño de estructuras web: iframe vs include. En: Arquitectura de la Información y Desarrollo Web Avanzado y PHP: include - Manual

miércoles, 7 de mayo de 2014

Creación de bases de datos, tablas y campos con el SGBD PhpMyAdmin

El SGBD PhpMyAdmin es una herramienta de ayuda a la gestión y administración de la base de datos MySQL, por medio de un interfaz de páginas web desarrolladas en lenguaje PHP. Permite la creación y eliminación de bases de datos, tablas, campos, así como la edición e inserción de datos y contenidos. Para ello se ejecutan las consultas correspondientes en lenguaje SQL. 

Crear base de datos
En PhpMyAdmin es posible crear tantas bases de datos como sean necesarias, pudiendo ser gestionadas todas desde la misma herramienta, aspecto que MS Access no permite. Para crear una nueva base de datos, seguir los siguientes pasos:
  • Acceder a PhpMyAdmin - http://127.0.0.1:4001/phpmyadmin/ -> usuario y contraseña "root" -> Página de inicio de PhpMyAdmin -> Crear nueva base de datos -> Escribir nombre de base de datos sin mayúsculas, acentos, caracteres extraños, guiones bajos, signos de puntuación -> Seleccionar cotejamiento UTF-8 General Ci -> Crear base de datos
Al crear una nueva base de datos se observará la siguiente instrucción SQL. En ella se indican las instrucciones CREATE DATABASE, que indican la creación de una base de datos con el nombre establecido y con el DEFAULT CHARACTER SET o set de caracteres por defecto UTF8 cotejado.
CREATE DATABASE `nombre-base-de-datos` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
De esta forma es posible el aprendizaje de SQL con PhpMyAdmin e incluso la modificación de las sentencias y consultas utilizadas por el programa. Otro de los aspectos que se advierten es la creación de la base de datos y su presencia vacía de tablas en la columna de bases de datos. Automáticamente PhpMyAdmin selecciona la base de datos recientemente creada para la edición de tablas.

Crear tabla
Al igual que en MS Access, MySQL permite la creación de tablas para la base de datos creada recientemente. El proceso de creación de tablas es el siguiente:
  • Seleccionar la base de datos correspondiente -> Observar la opción "Crear nueva tabla en la base de datos" -> Escribir el nombre de la tabla que se creará en la base de datos seleccionada -> Escribir el número de campos de la tabla -> Continuar -> En pantalla aparecerán tantas filas como campos se especificasen para la creación de la tabla
Crear campos
En PhpMyAdmin la tabla y los campos son dos pasos en uno. De hecho al crear la tabla y especificar el número de campos aparece un formulario para la concreción de los mismos. Se procederá de la siguiente forma:
  • Escribir los datos correspondientes a los campos, identificados en cada una de las filas. Esto es determinar el nombre del campo, el tipo de campo, la longitud de valores, el cotejamiento, atributos, nulidad del campo, valores predeterminados, opciones extra, tipo de campo clave primario, campo índice, campo único, campo indexable a texto completo, comentarios.
  • El siguiente paso es el establecimiento de los motores de almacenamiento y el cotejamiento de la tabla que se creará. El cotejamiento debe coincidir con el set de caracteres de la base de datos, por lo tanto será utf8_general_ci. En cuanto al motor de almacenamiento se recomienda el estándar MyISAM, ya que permite la recuperación en lenguaje natural y la indexación del contenido a texto completo. Una vez preparados todos los datos, se hará clic en el botón "grabar".
Al grabar los datos en la base de datos, PhpMyAdmin realiza la operación de creación tanto de la tabla como de los campos, mostrando a la par la consulta SQL derivada del proceso, similar a la que se muestra a continuación.
CREATE TABLE `prueba` (
`id` INT NOT NULL ,
`titulo` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`descripcion` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
PRIMARY KEY ( `id` ) ,
FULLTEXT (
`titulo` ,
`descripcion`
)
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
Se puede observar cómo todos los aspectos reflejados en el formulario anterior fueron convertidos en una sentencia de consulta SQL, lo cual demuestra una vez más, que todo cuanto se opera en el programa PhpMyAdmin es realizado en este estándar, de aquí su importancia e imprescindible conocimiento para operar con bases de datos profesionales.

Dar el salto a MySQL

Hasta el momento se han explicado los fundamentos básicos del diseño de una base de datos, su edición y preparación de cara a su gestión posterior. Pero MS Access tiene problemas insalvables como la imposibilidad de gestionar millones de registros, difícil de adaptar al entorno web, no permite la colaboración de varios editores simultáneos en el sistema, limitado por el interfaz del SGBD integrado y Visual Basic, SQL limitado, entre otros muchos aspectos. Por este motivo, se recomienda "Dar el salto a MySQL". Si bien es cierto que los métodos de trabajo cambiarán con MySQL también lo es que dominar la técnica proporciona una mayor libertad y capacidad en el desarrollo de sistemas de información, no existiendo ningún tipo de límite, excepto la imaginación del documentalista.


Qué se necesita para dar el salto a MySQL
Para poder dar el salto es necesario disponer de las herramientas adecuadas que son las siguientes:
  • Servidor web Apache. El servidor web Apache es el soporte básico para el funcionamiento de las páginas web en la red. En este caso es necesario para crear las páginas web que permitirán interactuar con MySQL. Un servidor Apache se encarga de recibir y dar respuestas a los equipos clientes que solicitan una determinada página web o IP, por medio del protocolo HTTP. Ello permitirá que cuando un usuario acceda al formulario de edición del catálogo pueda guardar los datos de la catalogación y procesarlos en la base de datos MySQL. 
  • Compilador intérprete de PHP. Aunque los formularios del interfaz de la base de datos se programarán en lenguaje de marcado HTML, el procesamiento de la información que es remitida se realiza siempre con algún lenguaje del lado del servidor. Esto significa que existen lenguajes de programación especializados en el pre-proceso del hipertexto. Todas las respuestas que vemos en el navegador web son resultado de una programación PHP invisible para el usuario, que determina si el formulario del catálogo fue correctamente rellenado y debe enviar al usuario a una página de aviso para que lo subsane, o bien si fue correctamente cumplimentado, sugerirle con la carga de otra página que imprima el código de barras y su signatura. Tales decisiones se realizan automáticamente en virtud de la programación desarrollada en este caso con PHP.
  • Base de datos MySQL. La base de datos MySQL es la pieza clave en todo el instrumental. Por sí sola requeriría un terminal de consulta para poder interactuar. Ello requeriría del usuario un conocimiento completo de todo el lenguaje de consulta SQL. Dado que no es el caso, la base de datos suele acompañarse del SGBD PhpMyAdmin que proporciona una interfaz visual que permite realizar la mayoría de las operaciones con ella. De esta forma todo lo aprendido con MS Access puede ser aprovechado con MySQL y llevar a efecto el salto mencionado.
  • Alojamiento o espacio en disco. Si bien es cierto que tales herramientas requieren una alojamiento web para funcionar, también lo es el hecho de que pueden ser instaladas en un equipo de forma local (127.0.0.1) 
  • Editor de código fuente. Si bien la estructura y desarrollo de la base de datos puede realizarse de forma sencilla aprendiendo el SGBD PhpMyAdmin, hay que tener en cuenta que la interfaz de interacción con la base de datos puede no serlo tanto. Ello es debido a que exige del Documentalista-Desarrollador una experiencia de programación media en PHP y HTML como mínimo. En tal caso la mejor herramienta de desarollo es un Bloc de notas y el editor Eclipse PDT especializado en programación PHP. Teniendo en cuenta la imposibilidad de explicar todo ello en un curso tan reducido, todas las explicaciones en materia de formularios e interacción con la base de datos serán respaldadas con ejemplos ya programados que apenas requieran modificación.

Descargar la herramienta todo en uno: Server2Go
Para realizar las pruebas correspondientes a la base de datos MySQL se utilizará la distribución Server2Go. Se trata de una aplicación portable de las herramientas anteriormente descritas y que no requiere instalación. Es capaz de funcionar en pendrives, discos duros externos y básicamente en cualquier equipo con sistema operativo Windows. La versión que se pone a disposición ha sido configurada y preparada especificamente para la ocasión de tal manera que no será necesario realizar ningún cambio añadido, estando disponible desde el principio para su funcionamiento. Algunos requerimientos básicos son la disposición del navegador Mozilla Firefox que será el utilizado por defecto por Server2Go para crear la sesión del servidor.