Prévia do material em texto
19-4-2015
LSC. José Vicente Pérez Soto
Este manual es solo una referencia para la materia “Desarrolla
aplicaciones web”, contiene diferentes técnicas de aprendizaje, así
como ejercicios para que el estudiante ponga en práctica lo
aprendido en las sesiones.
PROGRAMACIÓN PHP & MYSQL
PHP & MySQL Página 1
Índice
PHP & MySQL Página 2
Introducción
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.
Aunque no es imprescindible, es recomendable tener conocimientos sobre el lenguaje Javascript si queremos
dedicarnos, ya sea de modo profesional o aficionado, al diseño web. Javascript es un lenguaje con el que
podemos crear elementos dinámicos o cambiantes dentro de la página.
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.
PHP & MySQL Página 3
Trabajar con 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.
PHP & MySQL Página 4
La instalación en nuestra computadora de los tres programas anteriores, o del paquete integrado XAMPP, es
imprescindible para poder ver en nuestra computadora los resultados de las páginas y pruebas que hagamos
en PHP, sin necesidad de subirlas al servidor.
PHP & MySQL Página 5
Programas necesarios
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.
PHP & MySQL Página 6
Instala XAMPP
La instalación se hace como la de cualquier programa normal. Veamos los pasos que hay que dar:
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:
Pulsamos en "Ejecutar" y se abre la ventana con el proceso de instalación. El aspecto de la ventana es el
siguiente:
PHP & MySQL Página 7
El botón "Browse" es por si queremos cambiar el directorio en el que se guardará el programa. Como vemos
el programa por defecto, se guarda directamente en el disco local. No tocaremos este botón y dejaremos
este directorio.
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:
PHP & MySQL Página 8
La primera pregunta es si deseamos crear un icono en el escritorio y la barra de tareas contestamos que sí
(y). Para ello pulsamos la tecla "y" y después "enter".
La consola sigue preguntando:
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.
PHP & MySQL Página 9
Los programas ya están instalados y configurados, sin embargo es posible que tengamos que reiniciar el
equipo para que estos puedan funcionar. Por tanto reiniciamos el equipo para que pueda funcionar
correctamente.
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.
Si pulsamos en el icono del escritorio se abrirá el "panel de control":
PHP & MySQL Página 10
Trabajar con XAMPP
Para trabajar con XAMPP lo primero que haremos será abrir el panel de control. Desde ahí vemos que
programas están activados y cuáles no. Podemos cambiar algunas configuraciones, etc.
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 http://localhost 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.
PHP & MySQL Página 11
Botón Exit: Cerrar el panel de control. Es la forma correcta de cerrar el panel de control, ya que si
pulsamos en el aspa (X) de la esquina superior derecha (manera habitual de cerrar una aplicación)
lo que estamos haciendo es minimizar el panel de control, el cual se queda en la barra de tareas
(junto al reloj), de modo que sólo lo podremos abrir desde ahí. Al cerrarla barra de tareas, los
programas de XAMPP en activo siguen funcionando.
Ver archivos de PHP
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 http://localhost.
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 index.php.
PHP & MySQL Página 12
El lenguaje PHP
Sintaxis Básica
Abrir Scripts de PHP
El código PHP está incrustado entre medio del código HTML. Por tanto debemos indicar de alguna forma que
dejamos de escribir en código HTML y empezamos a escribir en código PHP. También debemos indicar dónde
acaba el código PHP y volvemos a escribir en código HTML. Esto se hace indicándolo mediante unas
etiquetas especiales que indican dónde empieza y acaba el código PHP.
La etiqueta <?php indicará que empezamos a escribir en PHP, y la etiqueta ?> indica que acaba el código
PHP.
<?php .... codigo php ... ?>
Escribir en la página con PHP
La instrucción echo es una de las más utilizadas en PHP, ya que nos permite visualizar en pantalla lo que
escribamos detrás de esta palabra clave. Si lo que queremos visualizar es un texto, debemos escribirlo entre
comillas. De la siguiente manera:
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:
PHP & MySQL Página 13
La instrucción print es en todo igual a la instrucción echo pudiendo usar una u otra indistintamente para
obtener el mismo resultado:
Esta instrucción o sentencia es idéntica a la anterior, y tiene el mismo efecto 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.
Primera página en PHP
Con lo visto hasta ahora podemos ya crear una primera página sencilla con lenguaje PHP. Para ello
abriremos el programa editor de textos y escribiremos lo siguiente:
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 index.php.
PHP & MySQL Página 14
Para verla abrimos el navegador y escribimos en la barra de navegación: http://localhost/index.php. En el
navegador debemos ver las dos líneas de texto tanto la escrita fuera de PHP como la escrita dentro de PHP.
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 http://localhost/... 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
"http://localhost/misubcarpeta/archivo.php". 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 "index.php" 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:
PHP & MySQL Página 15
Texto en minúsculas: Todo el texto del nombre de archivo se escribirá en minúsculas.
No poner acentos: Escribiremos todas las palabras sin acento, aunque los tengan.
No empezar por un número: El primer carácter o signo que escribamos no debe ser un número,
pues algunos programas podrían interpretar mal el nombre del archivo
No utilizar otros caracteres que no sean letras o números: no utilizar barras, paréntesis, puntos,
dos puntos, comas, comillas, signo más, etc.
Separar las palabras con guion normal - o con guion bajo _ : Esto nos asegura un sólo espacio
entre palabras, el ocupado por el guion bajo.(El guion bajo ( _ ) se escribe pulsando la tecla
Mayúsculas y la tecla Guion a la vez).
Variables en PHP
Definición de una variable
Una variable es un elemento en el que se puede almacenar un valor o dato. Para ello basta con asignarle a
una variable un valor. Si a esa misma variable le asignamos otro valor, esta cambiará el valor o dato que
tenga almacenado por el que le demos de nuevo.
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:
Asignar valor a una variable
Para crear una variable basta con escribirla (siempre precedida del signo $). Por lo tanto si escribimos
cualquier palabra precedida del signo $ esta será considerada como una variable.
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:
Nos dará el mismo resultado que si escribimos:
PHP & MySQL Página 16
Es más, si escribimos el nombre de una variable dentro de una cadena de texto, no veremos el nombre de la
variable, sino su valor. Por tanto si escribimos, siguiendo con el ejemplo anterior, el texto
Lo que veremos en la página será lo siguiente:
Tipos de variables
Las variables pueden ser de diferentes tipos en función del valor que almacenan. los tipos de variables son:
Números enteros (integer)
Números enteros sin decimales. Ejemplo:
$num1 = 43
Números Reales (real)
Números reales, con decimales. Ejemplo:
$num2 = 12.56
Cadenas de texto (string)
Texto escrito concaracteres alfanuméricos. Van siempre delimitadas por comillas al principio y al final de la
cadena. Ejemplo:
$texto = "Esta variable es un texto."
Arrays o listas de elementos.
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.
PHP & MySQL Página 17
Trabajar con variables
Cambiar el tipo de variable
Mediante la instrucción: setType()
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:
Indicando el tipo de variable a cambiar
También podemos cambiar el tipo de variable de la siguiente manera:
$variable = (tipo_variable) $variable;
Igualamos la variable a sí misma pero delante de ella, entre paréntesis ponemos el tipo de variable en la que
se convierte.
Aquí en "tipo_variable" podemos escribir:
(int), (integer) : Convertir a entero.
(real), (double), (float) : convertir a número real.
(string): Convertir a cadena de texto.
(array) : Convertir a array.
(object) : Convertir a objeto.
PHP & MySQL Página 18
Por lo tanto el ejemplo anterior podemos escribirlo también de la siguiente manera y el resultado será el
mismo:
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:
PHP & MySQL Página 19
Los caracteres de escape no sólo sirven para imprimir los caracteres usados por PHP, sino que permiten
además hacer otro tipo de acciones. Estas son tabulaciones o saltos de línea. Estas acciones se producen
únicamente en el código fuente, es decir, El lenguaje PHP es traducido a lenguaje HTML por el servidor; es en
este lenguaje HTML donde se producen las tabulaciones o saltos de línea indicados por los caracteres de
escape.
Los caracteres de escape más comunes son:
\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/>".
PHP & MySQL Página 20
Variables y Constantes
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:
El código anterior dará el siguiente resultado:
PHP & MySQL Página 21
Variables vinculadas
Podemos hacer una copia de una variable de forma que dos variables tengan el mismo valor. Para ello basta
con igualar la segunda variable a la primera:
<?php $v1="primera"; $v2=$v1 ?>
La variable $v2 tendrá el mismo valor que la variable $v1; lo cual lo comprobamos con el siguiente código:
El código PHP nos dará el siguiente resultado:
Si ahora cambiamos el valor de la primera variable, la segunda variable seguirá teniendo el valor antiguo: El
código será:
Y nos dará en el navegador el siguiente resultado:
Vemos que al cambiar la primera variable, la segunda conserva el valor antiguo.
Constantes
Que son las 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.
PHP & MySQL Página 22
Definir una constante
Para definir una constante debemos emplear una función predeterminada de PHP, la función define:
define("nombre","valor")
Veamos un ejemplo, el siguiente código:
Lo veremos de la siguiente manera en el navegador:
Como valor le podemos pasar un texto o también una variable.
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.
Comprobar una constante
A veces podemos tener problemas para acceder a una constante, sobre todo si su nombre coincide con el
nombre de alguna función o algún otro elemento. Para acceder a la constante de forma fiable emplearemos
la función constant("nombre"). Código de ejemplo:
Este ejemplo nos dará el siguiente resultado:
PHP & MySQL Página 23
FORMULARIOS
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.
Mandar un formulario a otra página
Para poder mandar los datos de un formulario a otra página, el formulario lo escribiremos de manera
normal, en lenguaje HTML, y la página del formulario puede ser perfectamente una página HTML, sin código
en PHP
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"
La etiqueta <form ...> quedará de la siguiente manera:
<form action="ruta_archivo.php" method="post">
Por último cada campo del formulario debe llevar el atributo name="nombre_del_campo". Con este atributo
identificaremoscada 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.
Datos en campos de texto
Veamos un ejemplo sencillo, con el que explicaremos de momento cómo recoger los datos que aporta el
usuario en los campos de texto. Tenemos el siguiente formulario:
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.
PHP & MySQL Página 24
El siguiente paso consiste en crear el archivo PHP, al que en este ejemplo llamaremos form.php y que
ubicaremos en la misma carpeta que el archivo que contiene el formulario anterior.
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 (form.php) 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:
PHP & MySQL Página 25
Campos de Opciones
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:
Botones check box
Los botones check box son independientes unos de otros, por tanto el atributo name debe ser distinto e
identificativo en cada uno de ellos. Para poder pasar los datos a otra página estos botones deben llevar el
atributo name. El atributo value no es obligatorio, aunque sí recomendable. Veamos un ejemplo:
Como en el caso anterior en la página de recogida de datos usaremos la variable $_POST['valor_de_name']
en el código php:
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.
PHP & MySQL Página 26
Listas Select
Las listas tipo "select" empiezan siempre por la etiqueta <select.>. Es en esta etiqueta donde debemos poner
el atributo name para identificarla.
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"
PHP & MySQL Página 27
Ejemplo de Formulario
Formulario
Veremos aquí un ejemplo en el que aplicaremos lo visto hasta ahora para recoger los datos de un formulario.
Lo primero es hacer un formulario en HTML. Este es la página de nuestro formulario de ejemplo.
PHP & MySQL Página 28
PHP & MySQL Página 29
Comprobación de datos
Los resultados los veremos en la página "comprobar.php" la cual la colocaremos en la misma carpeta que el
archivo anterior (por supuesto dentro del directorio "XAMPP/htdocs").
Esta será la página "comprobar.php".
PHP & MySQL Página 30
Por último colocaremos la página que nos dice que los datos han sido enviados, para ello crearemos la
siguiente página llamada "enviar.html
PHP & MySQL Página 31
Traspasar Datos
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.
Incluir archivos PHP
Dentro de un sitio web la mayoría de las páginas tienen muchas partes iguales. Con php podemos guardar
este código en un archivo aparte, de manera que con una simple referencia, el código se incluye en la página.
Esto tiene la ventaja de que si cambiamos el código del archivo, se cambia en todas las páginas en las que
tiene la referencia. No tenemos que ir página por página cambiando el código de la cabecera, por ejemplo,
sino que sólo hay que cambiarlo en el archivo de referencia.
La forma de incluir un archivo externo en la página con PHP es la siguiente:
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.
PHP & MySQL Página 32
También podemos incluir un archivo externo de la misma manera que el anterior mediante el código:
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.
Ejemplo de página con archivos de referencia
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.
Puedes examinarla, copiarla en tu editor de textos y comprobar cómo funciona.
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 XAMPPestá instalado en el directorio por
defecto será: C\XAMPP\htdocs\micarpeta\principal.php. Al archivo principal lo llamaremos "principal.php".
Para verlo en el navegador, debemos escribir la dirección: "http://localhost/micarpeta/principal.php".
Este es el archivo principal:
PHP & MySQL Página 33
El archivo lo guardaremos con el nombre y extensión "principal.php".
El archivo CSS es el siguiente y su nombre y extensión será "principal.css".
PHP & MySQL Página 34
El código PHP hace referencia a tres archivos los cuales son los siguientes: Archivo "cabecera.html", el cual
incluye la cabecera de la página:
El segundo archivo es "menu.html", en el cual incluye el menú lateral izquierdo a la página:
El tercer archivo es el que incluye el pie de página. Se llama "pie.html":
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.
PHP & MySQL Página 35
Pasar variables por URL
Ámbito de las variables
El ámbito de una variable es el lugar en el que ésta funciona, es decir en donde la variable tiene validez.
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.
Traspaso de variables por enlaces
Podemos pasar una variable a otra página cuando la abrimos con un enlace, mediante el siguiente código:
<a href="destino.php?variable1=valor1&variable2=valor2&... "> pasar variables</a>
En el siguiente código nos fijamos en el atributo href del enlace.
En primer lugar escribimos la ruta o URL del destino de manera normal.
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:
<a href="bienvenida.php?var1=Hola, &var2=Bienvenido a esta página."> Página de bienvenida</a>
Este es un enlace hacia la página "bienvenida.php" 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.".
Recoger datos en la página destino
La segunda parte consiste en recoger las variables en la página de destino. Estas son traspasadas mediante
el método GET por lo que para recogerlas utilizaremos la variable del tipo $_GET['variable1'].
Veamos cómo queda el ejemplo anterior: En la página de envío: "envio.php", escribimos las variables y las
mandamos mediante un enlace. Esta es la página de envío:
PHP & MySQL Página 36
En la página de destino recibiremos las variables mediante el método GET y las sacamos en pantalla:
PHP & MySQL Página 37
Operadores
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".
Operadores Aritméticos clásicos
Los operadores aritméticos clásicos son la suma "+, la resta -, la multiplicación * y la división /. A estos hay
que añadir el operador módulo % cuyo resultado es el resto de la división entre números enteros y su signo es
el del porcentaje (%).Operamos normalmente guardando el resultado en otra variable:
$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.
Existe un operador de incremento ++ y un operador de decremento -- los cuales aumentan o disminuyen
respectivamente en una unidad el valor de la variable a la que se aplican.
Por ejemplo si tenemos la variable $n=5 y le aplicamos el operador de incremento:
++$n;
El valor de $n ahora será 6.
Pero si después le aplicamos el operador de decremento:
--$n;
El valor de $n volverá a ser 5.
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.
PHP & MySQL Página 38
Operadores de asignación compuestos
La lista de los operadores de asignación compuestos es la siguiente:
$a+=$b : suma de $a y $b y el resultado cambia el valor de $a
$a-=$b : resta de $a y $b y el resultado cambia el valor de $a
$a*=$b : multiplicación de $a y $b y el resultado cambia el valor de $a
$a/=$b : división de $a y $b y el resultado cambia el valor de $a
$a%=$b : módulo de $a y $b y el resultado cambia el valor de $a
$a.=$b : concatenación de $a y $b y el resultado cambia el valor de $a
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.
PHP & MySQL Página 39
Codigo
Aquí el código de los archivos HTML, CSS y PHP.
PHP & MySQL Página 40
Ahora el archivo donde se realizan las operaciones:
PHP & MySQL Página 41
Operadores Condicionales
Los operadores condicionales indican si se cumple o no una condición. El resultado de la operación sólo
puede admitir dos valores: Una cadena vacía (falso) si no se cumple, o el número 1 si se cumple (verdadero).
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.
Lista de Operadores condicionales
Los operadores condicionales son los siguientes:
== : 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.
Lista de Operadores lógicos
Los operadores lógicos que podemos usar son los siguientes:
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
cumplaninguna 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.
&& : Igual que el operador and.
|| : igual que el operador or
! : 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.
PHP & MySQL Página 42
PHP MyAdmin
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.
Bases de datos en MySQL
MySQL es un lenguaje en el que podemos crear y administrar las bases de datos en formato ".sql". Este
lenguaje es compatible con php, de modo que utilizándolo dentro de php podemos utilizar las bases de datos
en las páginas web; El programa phpMyAdmin nos permite crear bases de datos de forma gráfica, que luego
pueden ser utilizadas en las páginas web. Esto tiene la ventaja de poder, por ejemplo, guardar registros de
clientes o usuarios, con sólo hacer que rellenen un formulario. Los datos del formulario se guardarán en la
base de datos, y si es necesario, se puede, por ejemplo, crear nuevas tablas, borrarlas, o incluso crear una
nueva base de datos o borrar una ya existente, y todo esto de una manera bastante sencilla y desde la propia
web.
"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.
Funcionamiento de la base de datos
Para el que no esté familiarizado con el manejo de bases de datos daremos aquí algunos conceptos básicos
para poder manejarlas.
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.
PHP & MySQL Página 43
Relaciones entre tablas
Las tablas de una base de datos pueden estar relacionadas unas con otras, de manera que formen
estructuras.
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.
PHP & MySQL Página 44
Usar PHPMyAdmin
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 "index.php" de
la carpeta "htdocs", podemos abrirlo escribiendo en el navegador: http://localhost
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.
También podemos abrirlo escribiendo en la ventana del navegador http://localhost/phpmyadmin
Una vez abierto obtenemos la siguiente ventana:
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:
PHP & MySQL Página 45
Tablas Campos
Autores idAutor
Autor
Año Nacimiento
Año Fallecimiento
Lugar nacimiento
Vida
Estilo
refEpoca
Obras idObra
Título
año 1ª edición
Argumento
Crítica
refAutor
refEpoca
refGenero
É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:
PHP & MySQL Página 46
Alfanuméricos Contienen tanto cifras como letras, podemos escribir en ellos cualquier cosa
hasta 255 caracteres.
Entero Se pueden escribir números enteros.
Decimales Admite tanto números enteros como decimales.
Fechas Para almacenar fechas, pueden admitir distintos formatos de fecha.
Memo Campos alfanuméricos de longitud ilimitada.
Autoincrementables Tal como se ha visto con los campos "id" son campos que contienen números
enteros, los cuales se incrementan en una unidad cada vez que se crea un
nuevo registro.
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 apareceotra pantalla, en ella en la parte central tenemos lo siguiente:
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:
PHP & MySQL Página 47
Definimos aquí el campo o columna que queremos crear, para ello se necesitan algunos datos:
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.
PHP & MySQL Página 48
Tipos de campo
En la casilla "Tipo, debemos poner el tipo de campo que queremos tener, según el tipo de campo, elegiremos
las siguientes opciones:
Alfanumérico: "VARCHAR" o "CHAR".
Número entero: "INT" o también "TINYINT", "SMALLINT" o "MEDIUMINT". La diferencia entre ellos
está en el margen de números que puede aceptar.
Número decimal: "DECIMAL", "FLOAT", "DOUBLE" o "REAL".
Fecha: "DATE", "DATETIME", "TIMESTAMP", "TIME" o "YEAR". Las diferencias entre ellos están
principalmente en el formato de la fecha.
Memo: "TEXT", "TINYTEX", "MEDIUMTEXT" o "LONGTEXT. La diferencia entre ellos está
principalmente en la longitud del texto que puede guardarse.
Crear nuevos campos
Después de pulsar el botón "grabar" para crear el primer campo, nos aparece otra pantalla: Nos fijamos
también en la parte central:
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"-.
El resto de casillas las dejaremos en blanco.
PHP & MySQL Página 49
La diferencia entre los índices "PRIMARY" y "UNIQUE", está en que "PRIMARY" crea una clave principal que
es una referencia para diferenciar los registros de la tabla, mientras que "UNIQUE" sólo nos garantiza que no
pueda haber dos celdas iguales, en diferentes registros, dentro del mismo campo.
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:
Campo Tipo Longitud/Valores Predeterminado
Año
nacimiento
INT 4 none
Año
fallecimiento
INT 4 none
Lugar
nacimiento
VARCHAR 255 none
Vida TEXT 1000 none
Estilo TEXT 1000 none
refEpoca varchar 255 none
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".
La Tabla la veremos ahora de la siguiente manera:
PHP & MySQL Página 50
Vemos que a la derecha de cada campo tenemos una serie de iconos, los cuales se repiten debajo de la tabla
por si queremos seleccionar más de un campo. Al pulsar sobre ellos se abren distintas opciones- Estos son los
botones:
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.
Clave Primaria. Crea una clave primaria en el campo señalado.
Clave Única. Crea una clave única en el campo señalado.
Índice. Crea una índice para el campo señalado.
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:
PHP & MySQL Página 51
Procedemos igual que para crear la primera tabla, por lo que en el cuadro de abajo, donde pone "crear
nueva tabla en la base de datos literatura", insertaremos el nombre de la tabla en "nombre", y pondremos
un "1" en "Número de campos". Lo mismo haremos para las otras tablas, después de posicionarnos en la
página de inicio de la base datos.
Solo nos falta insertar los datos para crear las tablas, los cuales son los siguientes:
Tabla Obras
Campo Tipo Longitud/
Valores
Predeterminado Índice AUTO_
INCREMENT
idObra INT 6 none PRIMARY Marcado
Titulo VARCHAR 255 none UNIQUE
Año 1ª
edición
INT 4 none
Argumento TEXT 1500 none
Critica TEXT 1500 none
refAutor VARCHAR 255 none
refEpoca VARCHAR 255 none
refGenero VARCHAR 255 none
PHP & MySQL Página 52
Tabla Época
Campo Tipo Longitud/
Valores
Predeterminado Índice AUTO_
INCREMENT
idEpoca INT 6 none PRIMARY Marcado
Epoca VARCHAR 255 none UNIQUE
Tiempo
comprendido
VARCHAR 255 none
Tabla Género
Campo Tipo Longitud/
Valores
Predeterminado Índice AUTO_
INCREMENT
idGenero INT 6 none PRIMARY Marcado
Genero VARCHAR 255 none UNIQUE
Relaciones entre Tablas
Una vez creadas las tablas abrimos la página de inicio de la base de datos, allí veremos las diferentes tablas:
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 siguientepanel:
PHP & MySQL Página 53
Vemos que cada tabla está representada por una barra, estas barras podemos cambiarlas de sitio
arrastrándolas dentro del panel. Además si pulsamos en la flecha azul de la izquierda, se abre la lista de los
campos que contiene cada tabla. Abrimos pues mediante la flecha azul todas las tablas, y las arrastramos
hasta una posición más cómoda:
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:
PHP & MySQL Página 54
Desde "Autor" en tabla "Autores" hacia "refAutor" en tabla "Obras".
Desde "Genero" en tabla "Genero" hacia "refGenero" en tabla "Obras".
Desde "Epoca" en tabla "Epoca" hacia "refepoca" en tabla "Obras".
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:
Pulsamos sobre "insertar" y se nos abre una nueva pantalla:
PHP & MySQL Página 55
Vemos que nos sale un panel para insertar nuevos registros en la tabla. Este panel puede estar repetido, para
insertar dos registros a la vez, si queremos insertar sólo uno rellenaremos sólo la primera parte, y si
queremos ver el panel sólo para un registro, iremos a la parte de abajo, donde pone "reinicie la inserción con
2 filas", cambiamos el 2 por el 1, y nos quedaremos con un solo panel para insertar.
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:
PHP & MySQL Página 56
Nos aparece la tabla en vista "examinar", en la cual aparecen los diferentes registros de la tabla. Si
queremos ver la tabla en la vista que estaba antes, pulsamos en la parte superior en "estructura" y si
queremos volver a insertar un nuevo registro pulsamos en la parte superior en insertar, y volvemos a
comenzar el proceso.
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:
PHP & MySQL Página 57
Rellenar tablas con datos
Ahora que ya sabemos cómo introducir los datos, rellenaremos algunos datos en el resto de las tablas.
Empezamos por la tabla "Epoca" en la cual introduciremos los siguientes datos:
Época Periodo comprendido
Edad Media Siglos X a XIV
Renacimiento Siglo XV
Barroco Siglos XVI y XVII
Neoclásico Siglo XVIII
Romanticismo Siglo XIX, primera mitad
Realismo Siglo XIX, segunda mitad
Generación 98 De 1890 a 1920
Generación 27 de 1920 a 1940
Actual De 1940 hasta hoy
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.
En la tabla Autores introduciremos el siguiente registro:
Autor: Arcipreste de Hita
Fecha Nacimiento: 1280
PHP & MySQL Página 58
Fecha Fallecimiento: 1351
Lugar Nacimiento: Alcalá de Henares
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.
refEpoca: -Edad media (lo elegimos en la lista desplegable).
Y ahora en la tabla Obras introducimos el siguiente registro:
Obra: Libro del buen amor
Año 1ª edicion: 1330
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.
refAutor: -Arcipreste de Hita
refEpoca: -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.
PHP & MySQL Página 59
Más opciones de PHMyAdmin
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.
Empezamos por la opción privilegios, si pulsamos ahí obtenemos la siguiente pantalla.
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.
PHP & MySQL Página 60
Conectar con MySQL
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 nuevosdatos 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:
Servidor: Es el nombre de la máquina en la que está el programa MySQL. Si trabajamos en local, es
decir en nuestro ordenador con XAMPP o algún otro programa que nos lo haya instalado, el nombre
es localhost
Usuario: Dentro de MySQL puede haber uno o varios usuarios, Cada uno de ellos tiene un nombre
diferente. Si trabajamos en local, el usuario por defecto es root.
Contraseña: Cada usuario tiene una contraseña, trabajando en local, el usuario por defecto "root"
no tiene contraseña, sin embargo siempre hay que ponerla por lo que pondremos un valor vacío: "".
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.
Conectar con MySQL
Ahora ya podemos conectar con MySQL, para ello utilizaremos la siguiente función:
Si trabajamos en local, y lo que estamos haciendo son sólo pruebas, podemos poner también;
PHP & MySQL Página 61
Como parámetros debemos pasar el servidor, el usuario y la contraseña, en este orden.
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.
Conectar con una base de datos
Conectar con una base de datos.
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:
PHP & MySQL Página 62
Trabajar con la base de datos
Una vez que hemos conectado con la base de datos, ya podemos trabajar con ella. Cambiar, buscar, añadir,
borrar, o cualquier otra operación que queramos hacer con la base de datos, debemos hacerla con la base de
datos abierta. Además debemos escribirlo en lenguaje MySQL, el cual debemos mandarlo al programa
MySQL para que lo ejecute.
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:
Donde el primer argumento ($sql) es el código MySQL y el segundo es la referencia a la conexió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í:
PHP & MySQL Página 63
En este código se supone que hemos guardado previamente los nombres del servidor, usuario y contraseña
en sus respectivas variables.
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.
PHP & MySQL Página 64
PHP & MySQL Página 65
Agrega vida a tus páginas web
Hasta el momento has creado páginas web con HTML y CSS.
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.
PHP & MySQL Página 66
HTML es estático y aburrido.
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.
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.
HTML es grandioso, si tú
quieres compartir una
imagen de tu
mascota…pero ya no lo es
cuando quieres interactuar
con tus visitantes.
Hello?
Estas personas
buscan interacción.
El código HTML en estas
páginas es determinado por el
desarrollador web.
El contenido de la página web, solo
cambia cuando el programador modifica
el .html y lo reemplaza en el servidor.
El servidor web se limita a mostrar las
páginas web estáticas una tras otra.
PHP & MySQL Página 67
PHP da vida a tus páginas web.
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:
Un script de PHP se ejecuta en el servidor y puede generar código HTML a voluntad.
Una página web con HTML se envía al navegador, que no sabe ni le importa si PHP está involucrado
Con algo de
ayuda del
servidor web
El navegador recibe
el código HTML de
la página, aunque
este es generado
dinámicamente por
PHP.
El código HTML de esta
página web es generado
por PHP y puede cambiar
de forma dinámica
dependiendo de lo que se
necesite.
Los scripts de PHP están
almacenados en el
servidor web, donde son
procesados y entregados
al navegador como
páginas web.
Los scripts de PHP
contienen ambos códigos
(HTML & PHP), que
determinan como se
manipula el HTML.
PHP almacena y
recupera datos de una
BD, y los incorpora en el
código HTML generado.
Las páginas web dinámicas
cambian de acuerdo al
contenido lógico de los scripts
de PHP, haciendomuy flexible
su uso.
PHP & MySQL Página 68
Cachorros en el espacio.
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.
¿Lo has visto?
Existen pocos detalles, pero
podemos afirmar que Fang fue
visto por última vez subiendo
por un rayo de luz.
Pero, para obtener información de otras personas, Owen necesita un
formulario Web; que sea capaz de permitir que los usuarios ingresen
información. Por supuesto esto no es un problema, ya que existen
diversas etiquetas HTML que ayudaran al trabajo.
PHP & MySQL Página 69
Creando el código
PHP & MySQL Página 70
Un formulario ayudara a Owen en su búsqueda
Owen tiene un nuevo sitio web llamado AliensAbductedMe.com 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:
Aquí se pide el email del
visitante
Owen quiere la
descripción física de los
aliens
Owen espera que digan Sí
a esta pregunta
Cualquier comentario
adicional puede ir aquí.
Owen quiere recibir un email cuando
el usuario envíe el formulario.
Una imagen de Fang,
insertada con puro código
HTML.
PHP & MySQL Página 71
Problemas con 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:
Estoy confundido ya que aparece un
mensaje de email.
Cuando doy clic al botón, me abre mi
Outlook en blanco, pase llenando el
formulario para nada.
Todas mis respuestas fueron
ignoradas ya que me abre el correo
en blanco, alguien debería secuestrar
este inútil formulario.
Mi navegador me dice que no
tengo cliente de email en mi
equipo y no pasa nada.
PHP & MySQL Página 72
Si hay un problema. El código HTML está bien, pero el
método mailto no es una forma correcta para enviar
datos.
El formulario de Owen está bien creado, cuando el
usuario presiona el botón “Reportar secuestro”, envía
un paquete de datos para email, el detalle es que este
email no se envía de forma automática y no solo eso
el usuario debe de enviar el email por sí solo.
Lo que necesitamos es una forma de enviar los datos
del formulario web. Para ser más específicos
necesitamos PHP, esto nos hace cambiar el esquema
ya que necesitamos al cliente (HTML) y al servidor
(PHP).
El formulario se ve muy bien, el
problema será el método para el envío
de correo
PHP & MySQL Página 73
HTML trabaja del lado del cliente
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.
Quiero acceder a la página de
Owen por favor.
El navegador solicita la página
web de Owen
En el Servidor se alojan
los archivos de la
página web
Aquí van
El navegador web lo
ejecuta la computadora
del cliente
El servidor regresa la página
web
Ahora quiero enviar los datos
que se llenaron del formulario.
El usuario llena el formulario y
lo envía.
El formulario le pide al
navegador que abra el
programa de email
El programa de email crea un
nuevo correo en blanco para
que sea enviado.
Yo no me
involucro
El servidor jamás
recibe los datos que
usen el método
mailto
Owen puede o no
puede recibir el
correo
PHP & MySQL Página 74
821 831 833