Manual de PHP y MySQL para Web
Manual de PHP y MySQL para Web
Si queremos aprender PHP debemos tener nociones de construir páginas web mediante HTML y CSS. Esto es
imprescindible, ya que las partes estáticas de la página se escriben en estos lenguajes, dejando el PHP para
incrustar en medio de éste las partes dinámicas o cambiantes. Si no conoces los lenguajes HTML y CSS debes
aprenderlos antes de seguir con este manual.
El conocimiento de Javascript es necesario si queremos dedicarnos al diseño de páginas Web; sin embargo no
es necesario para seguir el curso de PHP. Los lenguajes Javascript y PHP tienen muchas similitudes, muchas
estructuras y métodos son iguales o muy similares en ambos lenguajes, con lo que si sabemos Javascript nos
será más fácil aprender PHP.
El lenguaje PHP no puede leerlo directamente el navegador, por lo que se necesita un programa que
transforme el lenguaje PHP en HTML. Este es el programa PHP, que transforma el lenguaje PHP en HTML.
Actualmente está en su versión PHP 5.
Por otra parte si queremos ver el resultado de nuestro trabajo en nuestra computadora, debemos hacer que
nuestro equipo se convierta en un servidor, para ello utilizaremos el programa "Apache".
En PHP es frecuente trabajar con bases de datos, por lo que es necesario un programa que gestione las bases
de datos, utilizaremos para ello en programa MySQL.
Todos estos programas son gratuitos y pueden descargarse desde sus sitios Web oficiales. Una vez
descargados debemos configurarlos para que trabajen conjuntamente.
Existe también la posibilidad de descargarlos conjuntamente desde el paquete integrado XAMPP, que
contiene los tres programas anteriores y algunos otros, estos están ya configurados para trabajar
conjuntamente. Su descarga es también gratuita.
Navegadores
Los navegadores o browsers son necesarios para poder ver el resultado de cualquier página. Es conveniente
tener instalados los más utilizados por los usuarios, ya que el aspecto de la página puede variar de uno a
otro. De esta forma controlamos que la página se vea correctamente en los distintos navegadores
Editores de texto
El editor de textos es el programa en el cual escribiremos el código de la página. Podemos usar cualquier
editor de textos para escribir los archivos en código PHP, JavaScript, HTML o CSS.
Descargar XAMPP
XAMPP es un paquete integrado que contiene varios programas necesarios para trabajar con PHP. Como ya
se ha dicho en la página anterior los programas básicos para hacer funcionar el lenguaje PHP son el PHP, el
Apache, y el MySQL. Estos programas y algún otro vienen en el paquete integrado XAMPP.
En primer lugar abrimos el archivo que hemos descargado en la página anterior y que contiene el programa.
Al abrirlo veremos la siguiente ventana:
Para empezar la instalación pulsamos en "Install" y se abre la siguiente ventana en la que debemos esperar a
que se descarguen todos los archivos de XAMPP:
Una vez descargados todos los archivos se nos abrirá la consola MS-DOS de Windows en la que se nos harán
algunas preguntas para la configuración del programa:
Esta pregunta tiene activada la opción "n" por defecto, la dejamos como está y pulsamos intro.
Aparecen ahora los programas que están instalados. La consola nos indica que están configurados. Al final
debemos pulsar "Intro" para continuar.
Aparecen ahora una serie de opciones, estas indican algunos aspectos que pueden modificarse más
adelante. Por tanto pulsamos la "x" y después "intro" para salir de la consola de Windows.
Comprobar la instalación
Si todo ha ido correctamente, en el escritorio deberemos tener el icono de XAMPP, y también en el menú
inicio/todos los programas.
Los botones Stop/Start: Sirven para poner en marcha o parar los diferentes programas que integra
XAMPP. Cuando un programa está funcionando a la izquierda del botón aparece la palabra
"Running" y el botón muestra la palabra "Stop". Si el programa está parado el botón muestra la
palabra "Start". Al pulsar sobre el botón se activa o desactiva el programa indicado a su izquierda.
Para poder trabajar con PHP debemos tener activados al menos los programas "Apache y "MySQL".
Los botones Admin: Sólo están disponibles cuando el programa al que se refieren está activado. Al
pulsarlos nos lleva a una pantalla donde vemos las características y la administración del programa.
En "Apache" nos lleva a la página [Link] ya vista en la página anterior. En el programa
"MySQL" se abre una página en la que podemos configurar y trabajar con las bases de datos. Más
adelante mostraremos cómo hacerlo.
Los botones Svc: Instala el servicio FTP del programa.
Los botones Shell, Setup, Port-Check: Estos botones abren la consola de Windows para poder
realizar distintas configuraciones entre los programas. No los usaremos de momento.
Botón Explore: Abre la carpeta donde está instalado XAMPP.
Botón SCM: Abre la carpeta "Servicios Locales".
Botón Refresh: Vuelve a recargar el panel de control. Si hemos hecho algún cambio, este aparece en
la ventana que hay en la parte de abajo del panel.
Botón Help: Abre una ventana en la que se muestra información sobre XAMPP.
Un archivo en PHP es en realidad una página construida en lenguaje HTML a la que se le han añadido trozos
(scripts) escritos en PHP. La página la guardaremos con la extensión .php
Para poder ver en nuestro ordenador las páginas que vayamos haciendo en PHP debemos guardarlas en la
carpeta "htdocs" que está dentro de la carpeta donde se ha instalado XAMPP. Si no se ha variado la carpeta
en la instalación el directorio será: C / xampp / htdocs. Para verlos en el navegador debemos visualizarlos
desde la página [Link]
Dentro de la carpeta htdocs vemos el archivo index. Este es el que por defecto se abre al ir con el navegador
a la página "localhost". No debemos cambiarlo, ya que es el que proporciona la información del servidor
apache.
Si lo que queremos es crear uno o varios sitios web en php, lo que haremos será crear dentro de la carpeta
htdocs una o varias subcarpetas que se correspondan a cada sitio. Por ejemplo, creamos dentro de htdocs
una subcarpeta llamada misitio. Dentro de ella estarán todos los archivos y carpetas del sitio que hemos
creado, entre ellos la página principal, llamada [Link].
Sintaxis Básica
La etiqueta <?php indicará que empezamos a escribir en PHP, y la etiqueta ?> indica que acaba el código
PHP.
Lo escrito dentro de la instrucción echo entre comillas, es interpretado por el navegador como código HTML,
por lo que podemos poner etiquetas HTML dentro del texto entre comillas para integrar mejor este texto en
la página:
Escribir instrucciones
Al igual que en javascript, podemos escribir las instrucciones con varios espacios en blanco entre palabras, y
con tabulaciones. Estos no serán tomados en cuenta al interpretar el código, y se considera que sólo hay un
espacio en blanco entre palabras aunque haya más de uno. Esto nos permite organizar el código para que
pueda ser más legible.
Sin embargo todas las instrucciones o sentencias PHP deben acabar con el signo de punto y coma ( ; ). El
cambio de línea al escribir el código no supone un cambio de instrucción, por lo que si no se pone el signo de
punto y coma seguiremos en la misma instrucción al cambiar de línea. Esto supone una diferencia
importante con Javascript, ya que en Javascript al cambiar de línea acabamos la instrucción para empezar
otra. En PHP el punto y coma es obligatorio al final de cada sentencia.
En esta página el código PHP está marcado en azul. Para ver cómo funciona esta página la copiamos en
nuestro editor de textos, y la guardamos en la carpeta "htdocs" del directorio de XAMPP creamos una
carpeta llamada Ejemplo1 y dentro con el nombre [Link].
Si examinamos el código fuente de la página (en la mayoría de los navegadores barra superior: ver/código
fuente) veremos que sólo hay texto en HTML. Si en lugar de abrir la página desde [Link] la
abrimos directamente con el navegador, sólo veremos el código escrito directamente en HTML, y el código en
PHP será ignorado.
La carpeta HTDOCS
Este será nuestro directorio de trabajo. Dentro de esta carpeta puedes crear subcarpetas para organizar
mejor todos nuestros archivos en PHP. Para verlos en el navegador debemos ir a la página
"[Link] Dentro de cada subcarpeta podemos guardar pruebas,
proyectos de sitios, carpetas raíz de sitios en php, etc. Cada subcarpeta puede tener un archivo principal al
que llamaremos "[Link]" y que será el que se abra por defecto al poner sólo el nombre de la subcarpeta.
Para escribir los nombres de los archivos debemos seguir las mismas reglas descritas para los archivos en
HTML. Recordemos que éstos son básicamente los siguientes:
Variables en PHP
Si conoces Javascript o cualquier otro lenguaje de programación, estarás ya familiarizado con este término.
Si no es así verás que esto es muy fácil.
En PHP todas las variables van precedidas del signo dólar $. Este signo delante de cualquier texto indica que
lo que viene detrás es una variable: ejemplo:
Sin embargo las variables tienen su utilidad en que pueden guardar valores, datos, u otros elementos. Por
tanto al crearlas es conveniente asignarles un valor o dato. Ello se hace mediante el signo = (igual).
En esta instrucción PHP hemos creado una variable llamada $texto. A partir de aquí, escribir el nombre de la
variable es lo mismo que escribir su valor o dato almacenado. Por tanto, siguiendo el ejemplo anterior, la
instrucción:
Tipos de variables
Las variables pueden ser de diferentes tipos en función del valor que almacenan. los tipos de variables son:
$num1 = 43
$num2 = 12.56
Texto escrito con caracteres alfanuméricos. Van siempre delimitadas por comillas al principio y al final de la
cadena. Ejemplo:
Un array es un conjunto de elementos que están agrupados bajo una única variable, y forman una lista. Si
conoces el lenguaje Javascript ya sabrás lo que son los arrays. La forma de trabajar con los arrays en PHP es
similar a Javascript, aunque no es idéntica. Veremos más adelante como trabajar con arrays en PHP. Aunque
más adelante se explicará con más detalle, este es un ejemplo de cómo crear un Array.
$array = array("primavera","verano","otoño","invierno");
Objetos
Las variables pueden guardar también otros elementos más complejos que pueden crearse con el lenguaje
PHP. Estos son los objetos. Los veremos en temas posteriores.
Las variables cambian automáticamente de tipo al asignarles un nuevo valor de otro tipo. No obstante
también podemos forzar a una variable a cambiar de tipo sin cambiarle el valor. Para ello utilizaremos la
función
setType($variable,"nuevo_tipo");
En "nuevo_tipo" podemos escribir las siguientes palabras "integer" (entero), "double" (número real), "string"
(cadena de texto), "array" (array), "object" (objeto). Veamos un ejemplo:
Igualamos la variable a sí misma pero delante de ella, entre paréntesis ponemos el tipo de variable en la que
se convierte.
Caracteres de escape
Al igual que en HTML o Javascript y otros lenguajes de programación, existen una serie de caracteres que se
utilizan para la propia programación, y que no pueden escribirse directamente para que se vean en la
pantalla del ordenador, ya que serán interpretados como una instrucción y no como lo que hay que escribir.
Por ejemplo, si en una cadena de texto queremos escribir el signo $ no podemos escribirlo directamente, ya
que el programa PHP interpretará que queremos escribir una variable, por tanto debemos indicar de alguna
manera que lo que escribimos no es una variable, sino el signo $.
La manera de indicarlo es escribir delante del signo la barra inclinada inversa ( \ ). Para escribirla debemos
pulsarla tecla " º " (esquina superior izquierda del teclado) a la vez que la tecla "AltGr". Veamos un ejemplo:
\n : nueva línea.
\t : tabulación.
\\ : barra invertida.
\$ : signo dólar.
\" : comillas dobles.
\' : comillas simples.
\& : signo ampersand.
\? : signo de interrogación.
Hay más caracteres de escape, pero estos son los más utilizados. Respecto al carácter de escape \n señalar
que la nueva línea se produce únicamente en el código fuente que se manda al navegador, y que podemos
ver desde la barra superior en ver/código fuente. Para provocar un salto de línea en el texto visible de la
página utilizaremos la instrucción echo "<br/>".
Concatenar variables
Consiste en hacer que el valor de una variable se convierta en el nombre de otra variable, para ello
concatenamos los signos dólar. Es decir si tenemos la variable $v1, podemos crear la variable $$v1. El
nombre de esta variable será el valor que le hayamos dado a la variable $v1.
Vamos a verlo con un ejemplo. Tenemos la variable $v1 = "tema1". Este es su código php:
Y la veremos así:
Ahora creamos la variable $$v1 = "contenido del tema 1". Para ver el valor de esta variable debemos escribir
en el código: $tema1, es decir, el valor de la variable de referencia. Veamos el código:
La variable $v2 tendrá el mismo valor que la variable $v1; lo cual lo comprobamos con el siguiente código:
Si ahora cambiamos el valor de la primera variable, la segunda variable seguirá teniendo el valor antiguo: El
código será:
Constantes
Las constantes son elementos parecidos a las variables, pero con la diferencia de que una vez que las hemos
definido no podemos variar su valor dentro de la página. Las constantes, al contrario de las variables, se
expresan sin el signo dólar ($), sin embargo su definición es un poco más complicada.
define("nombre","valor")
Una vez definida una constante no la podemos variar, a no ser que la volvamos a definir otra vez. Por tanto
no podemos asignarle otro valor, aunque sí trabajar con él.
Enviar datos
Los formularios son la manera más común de recoger datos del usuario. Si usamos sólo el lenguaje HTML La
única forma posible de mandarlos es por e-mail.
Sin embargo, con PHP podemos enviar los datos directamente a otra página, tal como veremos a
continuación, o podemos con PHP y MySQL guardar los datos en una base, para poder utilizarlos
posteriormente; esto lo veremos en temas posteriores.
Recordemos que la etiqueta form debe llevar siempre los atributos action y method.
El atributo action indica el lugar al que se envía el formulario, por lo que escribiremos la ruta al archivo que
recoge el formulario, el cual será una página en php.
El atributo method solo admite los valores "post" y "get" en principio utilizaremos el valor "post" aunque
también puede enviarse el formulario con el método "get"
Por último cada campo del formulario debe llevar el atributo name="nombre_del_campo". Con este atributo
identificaremos cada campo para crear una variable donde se guarde el dato aportado por el usuario. Por
tanto el valor de esta etiqueta debe ser distinto para cada campo.
El atributo action nos indicará la ruta del archivo en PHP donde se recogerán los datos. El atributo method
debe tener siempre el valor "post". Y los atributos name son la referencia para guardar el dato dado por el
usuario.
Los datos que ha introducido el usuario en el formulario se recogen en una variable que tendrá la siguiente
forma:
$_POST['valor_de_name']
Donde pone valor_de_name escribiremos el valor que le hayamos dado al atributo name. De esta forma esta
variable recogerá el texto escrito por el usuario en ese campo.
El código PHP siguiente nos mostrará en una segunda página ([Link]) los datos que el usuario ha
introducido en la primera:
El ejemplo anterior lo veremos funcionando en el siguiente enlace, en la página se muestra el formulario, una
vez relleno pulsas en enviar y veremos la segunda página con los datos que hemos introducido en la primera:
Radio Button
Los botones tipo radio que corresponden a un mismo campo deben llevar el atributo name en todos ellos con
el mismo valor. También deben llevar el atributo value que indica el texto a mostrar en el caso de que esté
seleccionado. Ejemplo:
El código php de la página donde se recogen los datos lo obtendremos mediante la variable
$_POST['valor_de_name'], tal como hicimos con los campos de texto en la página anterior. El dato recogido
será el valor de la etiqueta value del elemento seleccionado. Si no estuviera seleccionado ningún botón, la
variable quedará vacía.
En el ejemplo anterior usaremos el siguiente código php para mostrar el valor en la página de recogida de
datos:
Si el botón no se ha seleccionado se devolverá como valor una variable vacía, Si está seleccionado nos
devolverá el valor "on" si no lleva el atributo value. Si lleva este atributo el valor devuelto será el que éste
tenga.
Recordemos que las distintas opciones que puede elegir el usuario van marcadas por las etiquetas
<option>...</option>. Veamos la siguiente lista:
Como en los campos anteriores en la página php pondremos la variable $_POST['valor_de_name'] para
obtener el dato.
El dato que recoge la variable es el valor de la etiqueta value. Si la opción no lleva esta etiqueta el dato será
el texto de la opción. En el ejemplo anterior, si se selecciona la primera opción, el dato recogido será
"ninguno", y si seleccionamos la segunda será "red"
Veremos aquí un ejemplo en el que aplicaremos lo visto hasta ahora para recoger los datos de un formulario.
Manejar Datos
Lo que realmente le da utilidad al lenguaje PHP es poder trabajar con datos, insertándolos, borrándolos o
cambiándolos de forma dinámica en una misma página, de manera que se pueda cambiar su contenido sin
tener que cambiar toda la página.
Imagina una página de un periódico, o de una cadena de televisión. Estas páginas están actualizando los
datos varias veces al día. Otras páginas como en tiendas o pequeños negocios, también necesitan actualizar
sus datos con frecuencia (por ejemplo la disponibilidad de artículos o los precios).
Todo esto lo veremos en lecciones posteriores cuando tratemos sobre las bases de datos. De momento
veremos cómo tratar los datos de los archivos y formularios.
Donde pone ruta_archivo escribiremos la ruta para abrir ese archivo, de la misma manera que haríamos con
un enlace o una etiqueta tipo link.
El archivo de referencia será un archivo creado mediante el editor de textos, y que tendrá únicamente el
código que se quiera insertar en ese punto de la página. La extensión del archivo de referencia puede ser
.html o .php dependiendo del tipo de código a insertar.
Hay que tener en cuenta que lo que insertamos es un trozo de código, y no una página, por lo que en el
archivo de referencia no habrá etiquetas de apertura de página, o de cabecera o cuerpo (etiquetas html,
head o body). Lo que escribamos en el archivo de referencia será incluido en el código HTML de la página
desde la primera a la última letra.
Este código funciona igual que el anterior, pero además es el único que PHP admite si está incluido dentro de
una estructura condicional (en temas posteriores veremos qué es esto), es decir, si la inclusión o no del
código depende de una condición indicada previamente.
Aunque el código consta de varios archivos, al navegador se manda un sólo archivo HTML, por lo que si hay
código en CSS o Javascript en la página, este será interpretado igualmente en los archivos de referencia, tal
como si estuviera en la misma página.
La ventaja de usar este método es que podemos dividir la página en varias secciones, y trabajar en cada una
de ellas independientemente, sin tener que usar frames u otro tipo de particiones. La página aunque la
hayamos construido por partes, llegará al navegador como una sola unidad.
La siguiente página de ejemplo se compone de varios archivos. Un archivo principal, otro archivo con el
código CSS y varios archivos de referencia.
Todos los archivos debemos copiarlos en una subcarpeta que crearemos, llamada por ejemplo "micarpeta",
dentro de la carpeta "htdocs" del directorio de XAMPP. La ruta, si XAMPP está instalado en el directorio por
defecto será: C\XAMPP\htdocs\micarpeta\[Link]. Al archivo principal lo llamaremos "[Link]".
Fíjate que los archivos de referencia contienen únicamente el código a insertar, insertándolo exactamente en
el punto en el que está su referencia, y formando parte de la página de tal forma que el código CSS del
archivo principal se aplica a estos archivos de la misma manera que al archivo principal.
De no decir otra cosa, la variable tendrá su ámbito dentro de la página en la que fue creada, y a su vez
dentro de la función en la que fue creada (más adelante explicaremos las funciones), no pudiendo ser
utilizada en otra página. Sin embargo, existen métodos para pasar los valores o datos que almacena una
variable a otra página, tal como hemos visto en el tema anterior con los formularios, pero también podemos
pasar variables de una página a otra sin que éstas sean creadas por los formularios.
Después escribimos el signo de interrogación ? y las variables que queremos pasar a la otra página. Cada
variable va separada de las demás por el signo &.
De cada variable escribiremos su nombre, sin el signo dólar $, el signo igual, =, y después su valor. El valor de
la variable no debe ir entrecomillado, aunque esta sea una variable de texto.
Por lo tanto las variables son definidas al mismo tiempo que las mandamos. Veamos un ejemplo:
Este es un enlace hacia la página "[Link]" que está en la misma carpeta que la página de envío. En
este enlace mandamos dos variables, la variable $var1="Hola " y la variable $var2="Bienvenido a esta
página.".
Veamos cómo queda el ejemplo anterior: En la página de envío: "[Link]", escribimos las variables y las
mandamos mediante un enlace. Esta es la página de envío:
Operadores Aritméticos
Los operadores, como su nombre indica, nos permiten hacer operaciones con las variables, modificarlas,
sumar, restar, comprobar si son iguales o distintas, etc. si has seguido el curso de javascript, o conoces algo
de programación en algún otro lenguaje, ya sabrás lo que son los operadores. Si no es así puedes ver aquí
cuáles son y cómo funcionan. De todas formas siempre hay algunas cosas que cambian de unos lenguajes de
programación a otros, por lo que conviene mirar este tema para saber cuáles son.
Los operadores aritméticos nos permiten hacer operaciones aritméticas con las variables, estas deben ser de
tipo "numero" aunque algunas operaciones pueden hacerse también con variables de tipo "texto".
$num3=$num1+$num2;
Operadores de incremento
Los operadores de incremento, aumentan o disminuyen en un número entero el valor de la variable a la que
afectan.
++$n;
--$n;
Estos operadores podemos ponerlos antes o después de la variable, es decir podemos poner ++$n o $n++. El
resultado puede ser distinto ya que si está unido a otra operación, al ponerlo delante primero se incrementa
y luego se opera, mientras que si se pone detrás primero se opera, y luego se incrementa.
Aplicación Práctica
A continuación un ejemplo en el que el usuario escribe dos números en un formulario y nos da los resultados
de las operaciones vistas anteriormente.
Estos operadores son parte fundamental de las estructuras condicionales, que veremos más adelante, y que
permiten que el programa elija entre dos opciones dependiendo de si la condición indicada se cumple o no.
== : igualdad. Este operador compara dos variables, y devuelve el valor 1 en el caso de que las dos sean
iguales. No confundir con el operador de asignación (=); el cual asigna a la primera variable el valor de la
segunda.
> : mayor que. Compara las dos variables y devuelve 1 si el valor de la primera es mayor que el de la
segunda.
< : menor que. Compara las dos variables y devuelve 1 si el valor de la primera es menor que el de la
segunda.
>= : mayor o igual que. Compara las dos variables y devuelve 1 si el valor de la primera es mayor o igual que
el de la segunda.
<= : menor o igual que. Compara las dos variables y devuelve 1 si el valor de la primera es menor o igual que
el de la segunda.
and : Deben cumplirse los dos condiciones para que su valor sea verdadero.
or : Deben cumplirse al menos una condición para que su valor sea verdadero. Sólo en el caso de que no se
cumpla ninguna de las dos el valor será falso.
xor : Debe cumplirse sólo una condición para que su valor sea verdadero. si no se cumple ninguna, o si se
cumplen las dos a la vez, el valor será falso.
! : Se usa con una sola condición, y cambia su valor. Si su valor es verdadero lo cambia a falso y viceversa. es
como si pusiéramos un "no" delante de la condición a la que afecta.
Inicio MySQL
Una base de datos, como su nombre indica, es el lugar donde se guardan una serie de datos de manera
organizada. No sólo consiste en poder guardar los datos, sino también en poder recuperarlos para trabajar
con ellos; en poder buscar los datos que nos interesen en un momento dado, etc.
Las bases de datos organizan los datos en tablas, Las tablas pueden estar relacionadas entre sí, de manera
que los datos de una tabla tengan relación con los de otra.
Hay distintos programas de gestión de base de datos, tales como Oracle, Microsoft Access, etc. Sin embargo
MySQL es el que mejor se adapta al lenguaje php.
"phpMyAdmin" se instala junto con XAMPP, por lo que lo único que tenemos que hacer es empezar a usarlo.
phpMyAdmin no es exactamente un programa, ya que éste se muestra como un con conjunto de páginas
web, pero funciona como tal, y desde ahí podemos hacer todo tipo de operaciones en la base de datos.
La forma de estructurar los datos es mediante tablas. Las tablas son parecidas a las que siempre se han
hecho en papel para estructurar los datos, tienen una cabecera que indica qué tipo de datos queremos poner
en cada columna. Las columnas muestran cada una un tipo de dato distinto, y las filas que se corresponden
con una entidad (objeto, persona, etc.) a la cual se le indican los datos concretos que posee dentro del tipo de
datos mostrado en las columnas.
A las filas o datos correspondientes a una misma entidad, se le llama registro, el registro es como una ficha
de la persona u objeto de la que queremos guardar la información. Cada columna de la tabla es un campo,
y almacena un tipo de dato específico, como por ejemplo un nombre, una fecha, un número de teléfono, una
dirección de correo, etc.
La confluencia de cada fila con cada columna, nos da las celdas de la tabla, en cada una de las cuales sólo
puede haber un dato.
Supongamos una base de datos de obras literarias, podemos tener una tabla con autores, y otra con las
obras, luego una relación entre las dos tablas unirá a los autores con sus obras. Es evidente que a cada autor
le puede corresponder más de una obra, pero no al revés. Esta es una relación de uno a varios.
Otro tipo de relación puede ser de uno a uno, como sería por ejemplo entre personas y números de DNI.
Por último también puede existir la relacion de varios a varios, como puede ser por ejemplo entre
profesores y alumnos en un instituto, ya que cada profesor tiene varios alumnos, pero cada alumno tiene
también varios profesores.
Abrir PHPMyAdmin
El programa phpMyAdmin viene integrado en el paquete XAMPP con el que hemos instalado php. Para
abrirlo vamos a la página de bienvenida de XAMPP, la cual, si no hemos cambiado el archivo "[Link]" de
la carpeta "htdocs", podemos abrirlo escribiendo en el navegador: [Link]
En esta página, en la columna de la izquierda, veremos un apartado que pone "herramientas", y dentro del
"phpMyAdmin", pulsamos, y se nos abre el programa.
En esta página nos fijamos donde pone Crear nueva base de datos, debajo, en la ventana de la
izquierda escribiremos el nombre de la nueva base de datos que queramos crear, y después pulsamos el
botón "crear".
Vamos a crear una base de datos como ejemplo, la cual seguiremos rellenándola en los siguientes pasos que
demos. Conviene, antes de crear una base de datos, hacer una planificación de la misma, es decir, planificar
sobre un papel cuantas tablas va a tener, que columnas van a ir en cada tabla, y qué relaciones van a tener
unas tablas con otras.
Nuestra base de datos va a tratar de escritores y obras literarias, por lo que la planificaremos de la siguiente
manera:
Época idEpoca
Época
Tiempo comprendido
Género idGenero
Género
Tipos de campos
Observamos que aparte de los campos o columnas normales que debe tener la tabla, hemos introducido
otros campos, los cuales utilizaremos para crear las relaciones entre las tablas.
Los campos que empiezan por "id" sirven para identificar cada registro, para ello haremos que sean campos
con auto incremento, es decir que el primer registro tendrá el número uno, y al crear nuevos registros, se
aumenta el número del anterior en una unidad, así los registros quedan numerados. Es lo que se llama un
campo indexado, en el cual se crea una clave primaria que identifica de manera única a cada
registro.
Los campos que empiezan por "ref" serán los que estén relacionados con otros registros de otras tablas, de
manera que podamos vincular estos datos a otras tablas. Es decir, si un dato está vinculado a otro, esto
implica que al cambiar el primero, se cambia automáticamente el segundo.
Además los campos pueden clasificarse según el tipo de contenido que puedan admitir, por ejemplo, los
campos de auto incremento son campos de número entero. Según el tipo de contenido los campos pueden
ser:
Una vez que tenemos diseñada la estructura de la base de datos, pasaremos a crear la base de datos,
abrimos phpMyAdmin, y debajo de donde pone "crear nueva base de datos, (casilla izquierda), escribimos
"Literatura", después pulsamos el botón "crear.
Tablas
Crear tablas
En la página anterior creamos la base de datos "Literatura". Para ello hemos abierto phpMyAdmin, y donde
pone "crear nueva base de datos" escribimos "Literatura" y pulsamos en "crear".
Nos fijamos en el recuadro "crear nueva tabla en la base de datos literatura", Donde pone "nombre"
escribimos "Autores", que será el nombre de la primera tabla, y donde pone número de campos ponemos
"1". De momento vamos a crear la tabla con un campo, luego iremos añadiendo los demás.
Crear campo
Pulsamos luego en continuar y nos sale otra pantalla, en ella nos fijamos en el siguiente cuadro:
Campo: Escribimos aquí el nombre del campo que queremos crear. En nuestro caso escribiremos
idAutor
Tipo: Se define el tipo de campo, es decir si es alfanumérico, entero, de fecha, memo, etc. Para ello
elegimos entre las distintas opciones de la lista desplegable, la cual explicaremos más adelante. de
momento elegimos "INT", que indica que es un número entero.
Longitud/Valores: Se define aquí la longitud del campo. En caso de texto escrito es el máximo
número de caracteres. Nosotros escribiremos 6
Predeterminado: Indica el valor del campo en caso de que se quede sin rellenar. Lo normal es poner
"NULL", si queremos marcar que está vacío. o "como fuera definido" si queremos que muestre algún
valor. En este caso, escribiremos en el recuadro inferior el valor predeterminado lo que debe
mostrar. Nosotros lo dejaremos con "NULL"
Indice: Aquí elegimos entre distintas opciones, Como es un campo debe contener la clave primaria
elegiremos "PRIMARY".
AUTO_INCREMENT: marcamos esta casilla, ya que será un campo con auto incremento.
El resto de casillas las dejamos en blanco.
Una vez escritos todos los datos, vamos a la parte inferior de la página, y pulsamos donde pone "Grabar".
Nos aparecerá otra pantalla, la cual comentaremos más adelante, de momento vamos a explicar lo que
hemos hecho. Los tres primeros datos que nos piden son obligatorios, de otra manera nos da un mensaje de
error y el campo no se crea. El dato "Predeterminado", debemos ponerlo en "NULL" si el campo es numérico
(entero o decimal), y no queremos un valor predeterminado. Los otros datos son opcionales, indicando algún
valor, dependiendo del tipo de campo que queramos tener.
Vemos la estructura de la tabla, con sus campos, como de momento sólo tenemos un campo, sólo aparece
uno. Debajo de la tabla vemos que pone "Añadir 1 campo(s)"; el número "1" podríamos cambiarlo por otro
número, pero vamos a dejarlo así. Marcamos esta opción y pulsamos luego en "continuar".
Nos aparecerá otra vez la pantalla vista antes para crear un campo, pero ahora rellenaremos los datos de
otra manera, ya que vamos a crear el segundo campo. Estos serán los siguientes:
Campo: Autor - Tipo: VARCHAR - Longitud/Valores: 255 - Predeterminado: none - Índice: "UNIQUE"-.
Una vez rellenas las casillas podemos optar por volver a la tabla, pulsando en "grabar", donde repetiremos el
proceso para insertar un nuevo campo; o pulsar en "continuar" para seguir en la misma pantalla pero para
insertar otro campo.
Seguimos añadiendo los campos que faltan para completar la tabla, en los cuales insertaremos los siguientes
datos:
Para ello repetimos el proceso visto hasta ahora para crear los campos. Los datos que no hemos dado los
dejamos en blanco. Al acabar el último campo pulsamos en "grabar".
Examinar. Muestra la vista de todos los datos que hay guardados en las columnas que hemos
señalado. También podemos elegir esta opción con todos los campos de la tabla en la parte superior
de la página.
Cambiar. Abre la misma pantalla que cuando creamos un campo, desde ahí permite cambiar la
estructura del campo.
Eliminar. Elimina el campo señalado. Antes de eliminarlo definitivamente sale una pantalla que
pregunta si realmente se desea eliminar.
Siguiendo con la base de datos que habíamos diseñado en las páginas anteriores, debemos crear las tablas
que faltan, para ello lo primero es posicionarse en la página inicial de la base de datos. Para ello, desde la
página inicial de phpMyAdmin, en la columna de la izquierda se muestran las bases de datos que hay en el
programa. Elegimos la base de datos "literatura" y pulsamos en ella.
Si no estamos en la página principal, siempre podemos volver a ella desde la parte superior izquierda del
cuadro principal, donde pone "Servidor: localhost". Una vez posicionados, veremos en el cuadro principal lo
siguiente:
Solo nos falta insertar los datos para crear las tablas, los cuales son los siguientes:
Tabla Obras
Campo Tipo Longitud/ Predeterminado Índice AUTO_
Valores INCREMENT
idObra INT 6 none PRIMARY Marcado
Titulo VARCHAR 255 none UNIQUE
Año 1ª INT 4 none
edición
Argumento TEXT 1500 none
Critica TEXT 1500 none
refAutor VARCHAR 255 none
refEpoca VARCHAR 255 none
refGenero VARCHAR 255 none
Tabla Género
Campo Tipo Longitud/ Predeterminado Índice AUTO_
Valores INCREMENT
idGenero INT 6 none PRIMARY Marcado
Genero VARCHAR 255 none UNIQUE
Para crear las relaciones entre las distintas tablas, en esta misma página, vemos en la parte superior
izquierda, un cuadro que pone "Diseñador". Pulsamos ahí, y se nos abre el siguiente panel:
Pulsamos después en el tercer botón de la parte superior, al detener el ratón encima de este botón sale un
cuadro que pone "crear relación". Al pulsar sale un cuadro con fondo verde que dice "Seleccione la llave de
referencia". Llevamos el ratón hasta el campo "Epoca" en la tabla época, y hacemos clic. El mensaje del
cuadro cambia, ahora pone "Seleccione la llave extranjera", ahora llevamos el ratón al campo "refEpoca" de
la tabla "Autores" y hacemos clic. Sale un cuadro donde pone "crear relación", pulsamos en "ok" y vemos que
las dos tablas quedan unidas por una línea. Esto indica que están relacionadas. Hacemos lo mismo con las
siguientes relaciones:
Una vez que hemos creado las relaciones anteriores el panel mostrará las relaciones, de manera parecida al
siguiente:
Ya tenemos la estructura de la base de datos acabada, ahora necesitamos saber cómo introducir los
diferentes datos. Si queremos eliminar una relación pulsaremos en la parte final de la flecha que las une, nos
saldrá un cuadro que dice "Eliminar la relación", pulsamos en "borrar" para eliminarla o en "cancelar" si
queremos dejarla.
Introducir datos
Ahora debemos rellenar la base con algunos datos. Para ello empezaremos por la tabla "Genero". Abrimos
esta tabla en phpMyAdmin, y vemos que en la parte de arriba hay una serie de opciones:
Los datos a insertar los escribiremos en la columna "Valor", para cada uno de los campos. Los campos que
empiezan por id (con autoincremento) no los rellenaremos, por lo que aquí rellenamos el primer dato para el
campo género, Escribimos "Novela" y pulsamos luego en continuar
La columna "Función", a no ser que queramos hacer algún tipo de operación con los datos que insertamos, la
dejaremos siempre en blanco. Vamos a la parte de abajo, donde pone "grabar y luego volver", dejamos las
opciones como están, y debajo de ellas pulsamos en "continuar". Nos aparece la siguiente pantalla:
Seguiremos insertando nuevos registros en la tabla, con los siguientes valores para el campo Género:
"poesía", "teatro". Recuerda que el campo "idGenero no debe rellenarse al ser de auto incremento. Para ello
pulsamos en insertar y volvemos a repetir el proceso.
Es posible que al pulsar en "continuar" al acabar de insertar un registro, no nos salga la vista "examinar" sino
la vista "SQL", podemos cambiar la vista desde la parte superior de la página, pulsando en examinar.
Ahora en vista examinar, veremos la tabla con los tres registros que hemos incluido:
Recuerda que el campo "idEpoca" no debe rellenarse, ya que es de auto incremento. Una vez introducidos los
datos, la tabla, en vista examinar, la veremos así:
Para no alargar demasiado la página introduciremos sólo un registro en cada una de las dos tablas que
faltan. En los campos relacionados con otras tablas, no escribimos el valor, sino que lo seleccionamos en una
lista, esa lista son los valores introducidos en el campo de la tabla con el que está relacionado.
Vida: Fue clérigo y ejerció de arcipreste en Hita, actual provincia de Guadalajara. Se conocen muy pocos
datos de su biografía, apenas su nombre y el de uno de los protagonistas de su libro, Ferrán García,
Critica: Fue el creador de una obra miscelánea predominantemente narrativa en verso que constituye una de
las obras literarias más importantes de la literatura medieval española, el Libro de buen amor.
Argumento: El libro contiene una colección heterogénea de diversos materiales unidos en torno a una
pretendida narración autobiográfica de asuntos amorosos del propio autor,
Critica: Es una composición extensa y variada de 1728 estrofas. Está considerada de forma unánime como
una de las cumbres literarias españolas de cualquier tiempo, y no solo de la Edad Media.
refGenero: -Poesia
Aunque la base de datos ya está funcionando, tenemos que solucionar todavía algunos detalles, como lo de
subirla al servidor, o poder hacer alguna copia, etc.
Privilegios
En la parte superior de la página de PhpMyAdmin, vemos también otra serie de opciones. Algunas de estas
permiten realizar una serie de operaciones con las bases de datos o con las tablas, otras dan información
sobre el funcionamiento de la base de datos y de phpMyAdmin.
Aquí tenemos la lista de usuarios, desde aquí podemos añadir o eliminar un nuevo usuario, además si
pulsamos en el último cuadro del usuario, (donde hay un muñeco con un lápiz), podemos editar los
privilegios. Desde ahí podemos añadir o cambiar la contraseña para el usuario, y además elegir entre otra
serie de opciones.
Los privilegios, así como la contraseña pueden ser para un usuario, o sólo para una base de datos. Esto si
estamos trabajando en el servidor local, ("localhost"), en un ordenador personal nuestro, no tiene
importancia, ya que no se suelen poner contraseñas, pero si trabajamos en un ordenador compartido, o en el
servidor, es más que necesario poner contraseñas para que no puedan interferir en nuestro trabajo.
Introducción
En el tema anterior vimos cómo hacer una base de datos con el programa phpMyAdmin. Sin embargo lo
realmente interesante es poder ver en una página web los datos guardados en estas bases.
MySQL permite no sólo ver los datos guardados mediante phpMyAdmin, sino también introducir nuevos
datos o modificar los existentes. La conexión entre la base de datos y la página se realiza de forma
automática, de manera que al insertar, cambiar o borrar cualquier dato en la base, se cambia
automáticamente en la página.
No sólo podemos guardar datos desde la web, sino que podemos incluso crear una nueva base de datos
MySQL, insertar las tablas, y luego los datos en esas tablas, es decir, podemos prescindir de phpMyAdmin
para crear la base de datos, y crearla completamente desde la página web.
Para ello MySQL dispone de un lenguaje de programación específico, el cual se inserta dentro del lenguaje
php. Este lenguaje es bastante fácil, ya que no tiene ni variables propias (sí podemos usar las de php), ni
estructuras. Simplemente consiste en decir a la máquina lo que queremos hacer (buscar, insertar, borrar,
etc.)
Datos necesarios
Lo primero que debemos hacer, para trabajar con una base de datos desde nuestra página, es conectar con
MySQL, para ello en principio debemos saber los datos que nos permitan localizar y conectar con MySQL,
estos son:
Para tener nuestra página en la web, el servidor debe proporcionarnos estos datos, los cuales, está claro que
serán distintos que en servidor local, por lo que es conveniente guardarlos en variables para, antes de subir la
página, cambiarlos.
Si trabajamos en local, y lo que estamos haciendo son sólo pruebas, podemos poner también;
El funcionamiento es parecido a manejar archivos, es decir, una vez abierta la conexión, la guardamos en
una variable, (en este caso $db), esta es la referencia, y funciona igual que el manejador para los archivos.
Por lo tanto cuando acabemos de manipular los datos de la base, debemos cerrar la conexión, esto se hará
mediante la función:
Donde la variable $db es la variable de referencia que hemos puesto al abrir la conexión.
Una vez conectado a MySQL, el siguiente paso es indicarle la base de datos con la que queremos conectar, ya
que dentro de un mismo usuario, éste puede tener varias bases de datos, por lo que una vez conectados,
usaremos la siguiente función:
Como primer argumento de la función se pone el nombre de la base de datos, y como segundo ponemos la
referencia.
Por lo que para conectar con la base de datos "literatura", creada en el tema anterior, escribiremos lo
siguiente:
Para ello en primer lugar escribiremos el lenguaje MySQL y se guarda en una variable. Siguiendo el ejemplo
anterior, podríamos escribir:
En este ejemplo el código MySQL es "select * from autores". Este código seleccionará la tabla "autores" de la
base "literatura". Más adelante se explicará cómo hacer para poder ver la tabla.
Observa que el código MySQL lo hemos guardado en la variable $sql, esto es porque ahora debemos
mandarlo a la base de datos, esto lo hacemos mediante la siguiente función:
Los datos requeridos están en la variable $datos, más adelante veremos cómo extraerlos para verlos en la
página. Lo visto hasta ahora es el código básico imprescindible para trabajar con una base de datos MySQL.
El código completo visto hasta ahora para trabajar con una base de datos en local quedará así:
En la variable $datos mandamos o recibimos los datos que se refieren a la base y que hemos escrito en
código_MySQL.
El código visto hasta ahora es básico para trabajar con cualquier base de datos en MySQL.
Seguramente has notado que los visitantes a tu página solo pueden ver el contenido de forma pasiva. La
comunicación solo se da un canal y eso debe de cambiar. De hecho, a ti te interesa lo que tu audiencia está
pensando. Por lo que se requiere que los usuarios ingresen información en formularios web, además esta
información te debe ser procesada y entregada. Al parecer necesitaras algo más que HTML para llevar tu
sitio al siguiente nivel.
HTML es grandioso para crear páginas web, y eso es todo lo que sabemos. ¿Pero qué sucede cuando
necesitas que tus páginas hagan algo?
Imagina que en tú página web, necesitas buscar en una base de datos o enviar un email… ¿Cómo lo haces?
HTML se queda corto debido a las limitaciones del lenguaje, ya que está diseñado solo para mostrar
información.
Hello?
HTML es grandioso, si tú
quieres compartir una
imagen de tu
mascota…pero ya no lo es
cuando quieres interactuar
con tus visitantes. Estas personas
buscan interacción.
El servidor web es una gran parte del problema cuando solo tienes HTML, ya que solo funciona como un
aburrido mecanismo de entrega.
Un navegador solicita una página, el servidor responde con el código HTML y fin de la historia. Para poder
transformar las páginas web a unas verdaderas aplicaciones web, el servidor web debe de tomar un rol más
dinámico, que es posible con el uso de PHP.
PHP permite manipular el contenido en una página web desde el servidor justo antes de que la página sea
entregada al navegador del cliente. Funciona del siguiente modo:
Conoce a Owen. Owen ha perdido a su cachorro Fang, solo que encontrar a su perro no se limita a buscar
solo por el vecindario; ya que a Fang lo han secuestrado los Aliens. Esto hace que Owen busque por toda la
galaxia. Owen sabe algo de HTML y CSS, por lo que piensa que un sitio web podría ayudarle a resolver su
problema, permitiendo que otras personas puedan brindar información y a su vez compartir experiencias de
encuentros cercanos.
Owen tiene un nuevo sitio web llamado [Link] tiene el propósito de conectar a Owen con
personas que hayan sido secuestradas por Aliens y así saber algo acerca de Fang. Owen necesita un
formulario HTML para solicitar a los visitantes que compartan sus historias de abducción, para averiguar si
vieron a Fang durante sus viaje inter espaciales. Solo que Owen necesita tu ayuda para diseñar el formulario,
esto es lo que tiene en mente:
Owen quiere la
descripción física de los
aliens
Cualquier comentario
adicional puede ir aquí.
Owen quiere recibir un email cuando
el usuario envíe el formulario.
El formulario de Owen se encuentra completamente funcional, pero existe un problema ya que no recibe la
información de los visitantes, veamos que nos tienen que decir:
El formulario de Owen está escrito en puro HTML con el método mailto el formulario trata de enviar datos a
través de correo electrónico, aunque estuviese en Internet, este formulario está procesado desde en
navegador del usuario.
En el Servidor se alojan
los archivos de la
página web
Aquí van
El navegador solicita la página
Quiero acceder a la página de
web de Owen
Owen por favor.
El navegador web lo
ejecuta la computadora El servidor regresa la página
del cliente web
El formulario le pide al
navegador que abra el
programa de email
Owen puede o no
puede recibir el El programa de email crea un
correo El servidor jamás
nuevo correo en blanco para
recibe los datos que
que sea enviado.
usen el método
mailto