Sunteți pe pagina 1din 58

PHP Y SQL

Si bien mediante el uso del Html y de los estilos CSS podemos conseguir resultados impresionantes en
nuestras pginas web, no dejan de ser pginas un poco muertas en cuanto a que a no ser que nosotros mismos
vayamos cambiando los contenidos o su aspecto la pgina queda demasiado esttica, siempre igual. Si un
visitante la revisita al cabo del tiempo y no hemos trabajado sobre ella ver lo mismo y la impresin que
causar no ser muy buena, verdad?.

Existen varias formas de "dar vidilla" a una pgina web y aqu vamos a explicar la que yo creo que es la ms
utilizada. No quiero asustarte, je je, pero lo que vas a aprender a continuacin te va a desmarcar notablemente
del resto de colegas webmasters. Y lo mejor de todo, vas a aprender sin darte cuenta! De eso me encargo yo,
je je je.
El PHP es un lenguaje que va mucho ms lejos que el Html, pero ambos conviven perfectamente. Lo que se
consigue con el PHP es que la pgina que ve el visitante actue segn su comportamiento. Adems, gracias a
las bases de datos y el Mysql podremos guardar una cantidad terrible de informacin captada del visitante y
podremos trastearla para mostrar informacin.

Si no te has enterado de mucho te cuento lo que se puede conseguir dominando un poco el lenguaje PHP junto
con el Mysql. Puedes por ejemplo crear librerias de imgenes o lbunes de fotos, libros de visitas, foros, crear
sistemas de registro de usuarios, dar la posibilidad al visitante de elegir el aspecto de la web (aumentar el
tamao del texto, el color de fondo o el estilo completo, por ejemplo), puedes crear contadores y sistemas de
estadsticas de tus visitantes, crear encuestas, colocar en tu web formularios para recopilar informacin, o
incluso los tpicos carritos de la compra de tu negocio, crear tu propio programa para crear pginas web... El
lmite lo pone tu imaginacin y tu capacidad de aprendizaje. Sobre tu imaginacin poco podemos hacer, de
donde no hay no se puede sacar.... ja ja ja, pero s podemos ayudarte a aumentar tus conocimientos as que...
aqu estamos!
En las lecciones que siguen vamos a empezar explicando un poco cmo se usa el Php, cmo debe escribirse
su cdigo y veremos las operaciones ms comunes que podemos realizar.
Las bases de datos se manejan por ejemplo con otro lenguaje llamado MySql. La relacin entre el Php y
Mysql es tan estrecha que a la par iremos explicando cmo crear una base de datos, sus tablas, cmo definir
sus campos y cmo manejar toda la informacin que podemos guardar en ella.

Como trabajar sobre el servidor directamente escribiendo cdigo puede ser un poco pesado, nos basaremos en
la aplicacin Phpmyadmin, que nos facilita trastear nuestras bases de datos.
Si an no tienes ni idea de para qu puedes necesitar meterte toda esta informacin en la cabeza, solo puedo
decirte que confies en m y sigas adelante. Si te gusta el mundillo de las pginas web an a nivel de hobbie (es
lo que tratamos en CCTW) no te vamos a defraudar, seguro. Y para estar tirando piedras por la calle, mejor
estas ah sentadito delante del ordenador, no? ja ja ja ja

Qu es el Php?
Podra darte una genial definicin del lo que significan las sigles PHP, pero para eso tienes la wikipedia, as
que te vas a conformar con saber que es un lenguaje que se puede usar en nuestras pginas web, similar al
Html pero distinto pues usa otra forma de escribirse. El cdigo PHP que nosotros vamos a crear ir mezclado
dentro del cdigo Html pues ambos pueden convivir muy bien juntos. Pues ya est, con eso te basta para
seguir, je je.
Bueno hay algo que diferencia bastante al Php respecto del Html. Mientras que un navegador cualquiera
interpreta perfectamente (ms quisieramos nosotros, que todos interpretaran perfectamente, je je) el cdigo
Html, de Php no tienen ni idea, son as de tontitos. Y entonces para qu nos vale? No pasa nada, el lenguaje
Php no se invent para que lo entendieran los navegadores. Con el Php lo que hacemos es dar instrucciones a
nuestro servidor (el ordenador donde se aloja nuestra web) para que haga esta cosa y aquella. Cuando
ponemos cdigo Php en una de nuestras pginas web y lo subimos al servidor, el servidor lee ese codigo Php,
interpreta lo que le estamos ordenando y muestra al visitante el resultado, pero nunca el propio cdigo Php.

Vemoslo con un ejemplo tonto. Con Php puedo hacer que mi servidor sume cuanto es 10 + 10 escribiendo
entre el Html de la pgina el cdigo Php apropiado. Tras guardar la pgina en mi ordenador y subirla a
internet, ese cdigo tan raro sera leido por nuestro servidor que s fu al colegio a aprender Php (o eso
esperamos...). Nuestro servidor entonces lee todo el cdigo de la pgina y cuando llega a ese cdigo raro que
l s entiende, hace la suma de 10 + 10 y si no es idiota ni ha tenido ningn cortocircuito importante obtendr
como resultado 20.
Ahora viene nuestro vecino al que le hemos dicho que por favor por favor por lo que ms quiera visite nuestra
web y escribe (de mala gana) la direccin de nuestra pgina en su navegador (que no sabe leer Php). A nuestro
servidor le suena el timbre, alguien esta tocando a la puerta y quiere ver nuestra web! Corriendo lee el cdigo
de la pgina, ve la lnea Php de la suma aquella, calcula que ms o menos 10 y 10 son 20 y en lugar de
mandarle al vecino el cdigo Php de la suma decide hacerle un favor (a l y a su navegador) y mostrarle el
resultado, 20, en cdigo Html. Grandioso, verdad?

De esto podemos deducir ya algo. Si has seguido el curso paso a paso de Html de CCTW o si has estado
atento al Foro, sabrs que desde el navegador puedes ver el cdigo Html de cualquier pgina. Pues bien, si
una pgina contiene cdigo Php e intentas echar un vistazo a su cdigo, no vas a ver ni una sola lnea de Php.
Por qu? Pues te lo acabo de contar.... porque los servidores traducen lo que les ordenamos en Php a cdigo
Html.
Lo malo de esto es que no podremos aprender mirndole las tripas a la web de un amigo (o de la competencia)
para ver cmo ha conseguido hacer esto o lo otro, pero no temas, que aqu estamos para ensearte sin tener
que mirar tripas! je je.
Hay otro detalle que podras deducir de lo anterior, pero como acabas de llegar mejor te lo cuento yo que ya lo
se (mi trabajo me cost, ja ja). Como el Php solo lo saben interpretar los servidores y nuestros ordenadores no
son servidores, si intentamos hacer vista previa a una pgina con cdigo Php no vamos a ver lo que realmente
se vera en caso de estar colgada en el servidor.... Eso si que es pattico, verdad?
Existen, que yo sepa, dos opciones para trabajar con pginas con cdigos Php y poder ir viendo los resultados
conforme la retocamos. Una es trabajar online, hacer nuestros retoques, subir la pgina al servidor y visitarla
para ver los resultados. Es un poco lento y nos obliga a estar conectados todo el tiempo a internet, pero puede
servirnos (yo uso esa opcin). La otra es convertir nuestro ordenador en un servidor. Para eso, tenemos que
instalar el Php en nuestro ordenata y hacer unas cuantas cosillas de configuracin. Os lo explicar algn da,
como siempre, paso a paso.

Requisitos para aprender y usar Php


Para poder usar cdigo Php en tus pginas solo necesitas que el servidor donde alojes la web tenga instalado
este lenguaje. Existen varias versiones de PHP. La ltima en el mercado es la 5.0 y la 6.0 est apunto de salir.
En principio lo que aprendas ac te sirve en cualquier caso. Si tu servidor no tiene Php instalado o no quieres
trabajar conectado ya sabes que puedes convertir tu ordenador en un servidor instalando Php y otras cosillas
necesarias en l, pero eso te lo explico en otra ocasin (cuando yo aprenda....).
Tambin resulta casi imprescindible tener acceso a un archivo situado en la raiz del servidor y llamado
.htaccess. Algunas de las cosas que aqu veremos necesitarn poder actualizar ese archivo o en caso de que no
existe, poder crearlo y subirlo al servidor.

Inconvenientes en el uso del Php


No todo van a ser ventajas no? Para lo que te ha costado.... Las principales desventajas que yo le encuentro al
Php son, que no es un lenguaje tan comn y por tanto no son tantos los amigos a los que pedirles que te
ayuden un poco, que el tema de las vistas previas no es tan rpido como con Html, que quizs (aunque no es
lo normal) nuestro servidor de toda la vida no tiene Php instalado y por ltimo, que el Php mal utilizado es un
buen punto de acceso para los piratas que intentan entrar en nuestras pginas para pintarles vigotes a los tios
de nuestras fotos, o cosas peores. En cualquier caso, bien utilizado es una joya. Por ltimo y esto si que es
inevitable, es que como mediante Php es el servidor el que calcula, decide, muestra, traduce, suma 10 + 10,
etc segn nuestras ordenes, lo tendremos mucho ms ocupado que cuando tenamos la web con solamente
cdigo Html, por lo que si nos pasamos puede que el servidor se ralentice un poco, o puede que nuestro
proveedor de hosting nos invite a hacer trabajar a otro y que dejemos en paz a sus servidores (a m ya me pas
una vez...).
Otra pequea pega es que en ocasiones las direcciones de las pginas hechas con Php son rarsimas, llenas de
smbolos raros y datos. Esto es malo para el posicionamiento web pues con tanto smbolo raro Google (por
ejemplo) no encuentra nuestras palabras clave en la URL y termina aburrindose de esas pginas. De todas

formas ltimamente parece que Google va aprendiendo a leer esas direcciones. Por otro lado, existen formas
de rehacer esas direcciones para que sean bien leidas por los buscadores y en ocasiones, quedan incluso mejor
que las direcciones de pginas Html en cuanto a posicionamiento. Veremos tambin este truco ms adelante,
con lo que esto ltimo dejar de ser un problema. No considero que ninguno de estos inconvenientes sea
como para renunciar al Php, pero creo que son cosas que has de saber.

Escribir Cdigo Php


No tienes miedo an? Con la que te viene encima, madre ma...je je je. Pues vamos a escribir nuestro primer
cacho de cdigo Php en una pgina web de prueba, vale? Esto nos servir para repetir un poco algunas de las
explicaciones anteriores para que an te queden ms claras.
Cuando se inserta un trozo de cdigo Php dentro de una pgina con cdigo Html es necesario indicar al
servidor que esas lneas tan raras son cdigo Php. De lo contrario pensara que sigue siendo Html o que
estamos un poco borrachos, je je.
Al igual que cuando se escribe un prrafo en Html se encerraba este entre las etiquetas <p> y </p>, cuando
nos interese insertar cdigo Php entre el cdigo Html de una de nuestras pginas usaremos las etiquetas <?php
al principio y ?> al final.
<html>
<head>
<title>Mi quinta pgina con php</title>
</head>
<body>
<h1>Mi quinto ejemplo Php</h1>
<p>Este es mi quinto ejemplo con partes de Php</p>
</body>
</html>
El cdigo Html de arriba representa una pgina puramente hecha con Html, ms bien simplificada pero que
nos vale para ver cmo funciona el Php. S, he puesto "mi quinto". Realmente es "mi primer..." pero de este
modo si alguien nos ve ahora mismo pensar que debemos ser unos genios ya en Php, je je je je. Ser otro
secreto entre nosotros, vale? He visto tantos ejemplos ya con el tpico mensaje de "Hola Mundo!" que me da
un poco de angustia usarlo yo tambin as que.... seamos originales.
Aplicando lo dicho un par de prrafos ms arriba, vamos a introducir un bloque vacio de cdigo Php. Para
ello colocamos los smbolos que indican inicio y fn de cdigo Php y no pondremos, por ahora, nada dentro.
Quedara as:

<html>
<head>
<title>Mi quinta pgina con php</title>
</head>
<body>
<h1>Mi quinto ejemplo Php</h1>
<p>Este es mi quinto ejemplo con partes de Php</p>
<?php
?>

</body>
</html>
Puedes guardarla con el nombre test01.php No te doli verdad? je je je je. Ahora sobre esa base aprenderemos
las cosas bsicas del Php.
Ojo!: El cdigo php solo puede ser ejecutado por el servidor en pginas con extensin .php, a menos que le
indiquemos al servidor que ejecute php tambin en pginas con extensin .html. En breve os enseare a hacer
que los servidores puedan ejecutar ese cdigo php en paginas con extensin .html, oki? Recuerda lo
comentado antes. Si guardas un archivo con ese cdigo dentro con extensin .php e intentas hacer vista previa
no conseguirs ver lo que hace la parte de cdigo de Php a no ser que tengas el Php instalado en tu ordenador
(a no ser que tu ordenador est funcionando como servidor). Lo ms cmodo es subir ese archivo a tu servidor
y hacer la vista previa all. Es decir, lo subes y visitas su direccin para ver el resultado, que sera algo as.
(este lo puedes ver por que est en un servidor con php, claro).
Deja tambin que te recuerde que si haces clic en el enlace anterior para ver el resultado y accedes a su cdigo
Html, no vers nada del cdigo Php, sino solo sus resultados ya en Html. Ya sabes por qu, no? Como te deca
al principio el Php lo lee el servidor, lo ejecuta y manda el resutado al navegador, pero se queda el cdigo
Php. Poco a poco lo vamos entendiendo todo, no? Dime que s! je je je.

Mostrar texto en Php en la pgina web


A partir de ahora llamaremos sentencia a las ordenes que demos en Php, oki? Una de las sentencias que ms
usaremos en Php es la que ordena que se muestre un contenido en la pgina web. Esa sentencia se llama echo
y se usa escribindola dentro de la zona de php (entre las etiquetas de principio y final) seguida del mensaje a
mostrar encerrado entre dobles comillas, as:

echo "Esta es mi quinta frase hecha con Php!" ;


Ves que hemos colocado un punto y coma al final? Pues ya sabes una cosa ms, todas las sentencias terminan
en un punto y coma ; Si no se coloca nos dar un error.
Si aades esa lnea, perdn, esa sentencia ;) el cdigo anterior nos quedara as:

<html>
<head>
<title>Mi quinta pgina con php</title>
</head>
<body>
<h1>Mi quinto ejemplo Php</h1>
<p>Este es mi quinto ejemplo con partes de Php</p>
<?php
echo "Esta es mi quinta frase hecha con Php!" ;
?>
</body>
</html>
Qu va a ocurrir al subir este archivo a la red? Si lo subimos y visitamos la pgina veremos este resultado:

Mi quinto ejemplo Php


Este es mi quinto ejemplo con partes de Php
Esta es mi quinta frase hecha con Php!
Si ahora miras su cdigo Html no vers las lneas de Php que habamos escrito, sino que vers solo el Html
que el servidor ha traducido a partir del cdigo con Php, es decir, veras esto:

<html>
<head>
<title>Mi quinta pgina con php</title>
</head>
<body>
<h1>Mi quinto ejemplo Php</h1>
<p>Este es mi quinto ejemplo con partes de Php</p>
Esta es mi quinta frase hecha con Php!
</body>
</html>
Como ves, la sentencia echo lo nico que hace es colocar dentro del cdigo Html lo que hay dentro de las
dobles comillas. No es mucho, pero para ser nuestro primer da con Php.... no? Espero que esto no te
defraude, es solo un principio muy muy bsico, je je je. Como a nosotros nos gusta tener nuestro cdigo Html
bien limpito y bien estructurado, vamos a incluir dentro de esas dobles comillas las etiquetas <p> y </p>, no?
As el cdigo de nuestra pgina php sera este:

<html>
<head>
<title>Mi quinta pgina con php</title>
</head>
<body>
<h1>Mi quinto ejemplo Php</h1>
<p>Este es mi quinto ejemplo con partes de Php</p>
<?php
echo "<p>Esta es mi quinta frase hecha con Php!</p>" ;
?>
</body>
</html>
Y el resultado final que ve el visitante sera en ese caso este otro:

<html>
<head>
<title>Mi quinta pgina con php</title>
</head>
<body>
<h1>Mi quinto ejemplo Php</h1>
<p>Este es mi quinto ejemplo con partes de Php</p>
<p>Esta es mi quinta frase hecha con Php!</p>

</body>
</html>
La nica diferencia es que ahora esa frase est dentro de un prrafo, como tiene que ser.

Usando las primeras variables php en la


pgina web
La sentencia anterior no nos parece ni mucho menos extraordinaria, pues es algo que ya sabamos hacer
usando solo Html, pero vers como ms adelante la usas un montn de veces y de modos ms especiales y
resultones. El siguiente paso para adentrarnos en el Php va a ser conocer las variables que amplian bastante lo
que podemos hacer con este nuevo lenguaje. De nuevo, para saber bien bien lo que significa el trmino
variable, ve a la wikipedia, je je. Aqu lo explicamos para gente de la calle o al menos lo intentaremos. Vamos
a ver... Digamos que una variable es un nombre al que le asignamos un valor. El nombre puede ser una sola
letra, una palabra o incluso varias palabras unidas por guiones bajos. Estos son ejemplos de variables:

$a, $variable, $notas_de_matematicas, $matricula112,.....


Por otro lado, los valores que puede tomar una variable pueden ser nmeros, letras, palabras o incluso otras
variables. Lo veremos ms adelante. Los nombres que le damos a las variables deberan tener algn sentido
para nosotros para saber en cualquier momento de qu se trata. Si las llamamos como $a, $b, etc, nos va a ser
dificil recordar qu valor guardaban. Quizs sea mejor llamarlas como $nota_de_matematicas, $telefono,
$apellidos, etc, etc, no crees?
No obstante, no podemos dar el nombre que nos de la gana, tenemos que seguir ciertas normas como por
ejemplo:
- Siempre empiezan con el smbolo del dolar. Buen smbolo verdad? je je je.
- Justo despus del smbolo dolar no puedes poner un nmero. Tras el dolar solo se puede poner una letra
mayscula o minscula. En realidad se pueden usar algunos smbolos ms, pero para no liarnos nos limitamos
a esto,letras y nmeros si estos no estn justo tras el dolar. Cuando seas profesional podrs usar algn smbolo
ms, je je je.
Segn esto, NO seran vlidas estas variables:

variable (no tiene el smbolo de dolar)

$5direccion (no puede empezar con un nmero)

$matrcula (sabes que odio los acentos... php tambin, je je je)

$nota de matematicas (No! no pongas espacios en blanco!!!)

$nota-de-matematicas (usa mejor guiones bajos para... evitar_problemas)

Pero S valdran estas otras:

$sueldo, $apellido2, $a1234, $variable, $notadematematicas, $nota_de_matematicas, etc..


Los valores que podemos dar a cada una de estas variables puede ser como hemos dicho un nmero de una o
varias cifras, una letra o palabra o incluso otra variable (en ese caso la variable valdra lo que valga la otra
variable, claro).
Para usar una variable dentro de una pgina web lo primero que tenemos que hacer es colocar las etiquetas de
apertura y cierre de cdigo Php y despus indicar la variable a usar y el valor que queremos que tenga. Por
ejemplo,as:

<html>
<head>
<title>Mi quinta pgina con php</title>
</head>
<body>
<h1>Mi quinto ejemplo Php</h1>
<p>Este es mi quinto ejemplo con partes de Php</p>
<?php
echo "<p>Esta es mi quinta frase hecha con Php!</p>" ;
$miprimeravariable = "sorpresa" ;
?>
</body>
</html>
Guau, esto ya va pareciendo profesional. Ahora tenemos una pgina web bien sencillita, con un prrafo en
Html, otro en Php y una variable definida que... que no usamos para nada, an.

Comentarios y Notas dentro del Cdigo


Php
Recuerdas como en Html podamos aadir comentarios dentro del cdigo para guiarnos un poco? Pues en Php
tambin podemos hacerlo. Eso s, al ser lenguajes distintos el cdigo que indica comentarios tambin es
diferente. Dentro del cdigo Php, es decir, entre las etiquetas de apertura y cierre de Php, podemos escribir
comentarios nuestros (simples notas que no afectan en nada) sin ms que aadir antes de la nota el smbolo #
o dos barras como estas //. A partir de esos smbolos el resto de la lnea de cdigo no es leida por el servidor
(recuerda que al navegador no le llega el cdigo Php sino su resultado tras ser ejecutado por el servidor). Si
usas esos smbolos no tienes que usar smbolo de cierre de comentario, pues el servidor deja de leer toda la
lnea de cdigo a partr de ese signo hasta el final de esa lnea. Los siguientes son ejemplos de comentarios,
usados sobre la pgina de ejemplo que estabamos creando:

<html>
<head>
<title>Mi quinta pgina con php</title>
</head>
<body>
<h1>Mi quinto ejemplo Php</h1>
<p>Este es mi quinto ejemplo con partes de Php</p> /* Hasta aqu es Html */
<?php // Aqu empieza el codigo Php

echo "<p>Esta es mi quinta frase hecha con Php!</p>" ;


$miprimeravariable = "sorpresa" ; // Esta lnea da valor a una variable
###################################
#Tambin puedo poner esta tonteria
###################################
?>
</body>
</html>

Mostrar el valor de una variable Php en


una pgina web
Ahora que tenemos una variable con un valor asignado ($miprimeravariable = "sorpresa"),
vamos a ver cmo conseguir que aparezca en la pgina web ese valor. Esto lo vamos a
hacer con la funcin echo que vimos antes. Esto es bastante sencillo, basta con colocar
despus del echo la variable cuyo valor queremos mostrar, de este modo:
<?php
echo "<p>Esta es mi quinta frase hecha con Php!</p>" ;
$miprimeravariable = "sorpresa" ;
echo $miprimeravariable ;
?>
Este trozo de cdigo Php imprimir en la pantalla del navegador estas dos frases:
Esta es mi quinta frase hecha con Php!
sorpresa
Aunque claro, la palabra sorpresa no quedar entre las etiquetas <p> y </p> porque no se lo
hemos indicado en ningn lado. Para conseguir que sorpresa quede entre esas etiquetas
tenemos dos opciones. La primera es colocar las etiquetas de apertura y cierre de prrafo
dentro del valor de $miprimeravariable, pero no es la mejor opcin. Me gusta ms la
segunda alternativa, que es incluir las etiquetas dentro del echo, de este modo:
<?php
echo "<p>Esta es mi quinta frase hecha con Php!</p>" ;
$miprimeravariable = "sorpresa" ;
echo "<p>$miprimeravariable</p>" ;
?>
Vers como para mostrar en la pantalla solamente el valor de una variable podemos escribir
echo seguido simplemente de la variable, con su smbolo de dolar, claro, pero sin las
comillas dobles. En cambio si queremos mostrar en pantalla algo ms que el valor de una
variable necesitamos encerrar todo el contenido a mostrar entre comillas dobles " (no
simples '). Ms adelante veremos la diferencia entre usar comillas simples y dobles.

Dentro de esas comillas, simples o dobles, se puede insertar cdigo Html. As, cuando el
servidor traduzca el cdigo Php devolver al navegador del visitante lo que haya dentro de
las comillas, es decir cdigo Html que s sabe interpretar el navegador de nuestro querido
visitante. Lo pillas?

Como ejemplo te dejo esta otra sentencia:


echo "<p>El valor de mi primera variable es $miprimeravariable.</p>" ;
Fjate en varias cosas en este ejemplo que te servirn para recordar cosas dichas hasta
ahora:
- Usamos echo para mostrar algo en la pantalla del visitante.
- Ese algo lo encerramos entre comillas y esta vez las he usado dobles ".
- Como lo de dentro de las comillas va directo al cdigo Html de la web, coloco ya las
etiquetas de prrafo, <p> y </p>.
- Como he puesto comillas puedo insertar ms cosas adems del nombre de la variable, es
decir, las etiquetas Html de prrafo y un poco de texto.
- El nombre de la variable a mostrar lo pongo con su smbolo de dolar ($).
- Como toda sentencia, la termino con un punto y coma ;
El resultado de esa sentencia Php mostrara en la pantalla del navegador del visitante esta
lnea:
El valor de mi primera variable es sorpresa.
Pero qu ocurre si ahora quiero que la palabra sorpresa de la lnea de arriba aparezca entre
comillas? A primera vista podra intentarlo con esta sentencia;
echo "<p>El valor de mi primera variable es "$miprimeravariable".</p>" ;
Y qu problema tendremos con esto? S! Muy inteligente! Que ahora el servidor va a pensar
que lo que el echo tiene que mostrar termina en la segunda comilla doble que encuentra, la
que hay justo antes de $miprimeravariable y no har caso del resto de la sentencia o lo que
es peor, nos dar un error, que horror!
Para evitar esto Php ya tiene su truco. Recuerdas como para mostrar una acento en Html se
usaba un cdigo especial? (&aacute; para , &eacute; para , etc), pues en Php para
mostrar unas comillas sin que sean interpretadas como final o inicio hay que escribirlas con

la barra invertida delante. Para las comillas dobles usaremos \" y para las comilas simples
esto otro \'. Existen otros smbolos que se escriben correctamente tambin con esta
contrabarra delante, pero los veremos conforme nos hagan falta para no llenar el disco duro
de vuestro cerebrillo tan pronto, je je je. Por cierto, por si os interesa profundizar ya en este
tema, el sealar ciertos carcteres para evitar que los interprete el navegador de un modo
que no deseamos se suele llamar "escape de smbolos", por si queris buscarlo en Google.
El cdigo anterior escrito correctamente sera:
echo "<p>El valor de mi primera variable es \"$miprimeravariable\".</p>" ;
Y es ahora cuando os cuento la diferencia entre el uso de comillas simples ' ' y dobles " "
para encerrar el contenido de un echo. Cuando se usan comillas dobles el servidor cambiar
los nombres de las variables por sus valores reales, por lo quie valen (si $variable vale
sorpresa mostrar sorpresa), mientras que si usamos las comillas simples escribir el
nombre de la variable y no su valor (mostrar $variable, tal cul), y con su smbolo dolar al
principio, como si se tratara de un texto ms.
La sentencia anterior al estar escrita con comillas dobles mostara esto en el navegador del
visitante:
El valor de mi primera variable es "sorpresa".
Mientras que escrita con comillas simples, es decir, as:
echo '<p>El valor de mi primera variable es \"$miprimeravariable\".</p>' ;
mostrara esto otro:
El valor de mi primera variable es $miprimeravariable.
Esta diferencia es muy importante, pues usaremos uno u otro tipo de comillas segn
queramos que las variables sean o no sustituidas por sus valores correspondientes.
Recurdalo siempre!
Las principales operaciones del Php

De poco nos sirve tener variables si no sabemos hacerles trastadas, es decir, sumarles
alguna cantidad, restarles otra, dividirlas, multiplicarlas, etc, etc. Si en lugar de valer
nmeros, las variables contienen letras o palabras tambin estar bien poder jugar con ellas
quitndoles letras, poniendo en maysculas las minsculas, colocando una palabra de una
variable pegada a otra palabra de otra variable, eliminar los acentos,.... en definitiva,
trastearlas de todas las formas posibles, somos as de malos!
En adelante vamos a aprender a realizar unas cuantas operaciones pues nos servirn ms
tarde para crear lo que nos de la gana. No es necesario aprenderse todo de memoria

(bastante teneis con las asignaturas de clase, je je je). Os pasar una chuleta con todo esto
para no tener que estudiaros nada, vale? Pues vamos a ver cmo se hacen estas operaciones
en Php.

Suma de variables en Php


No te asustes. El ttulo parece un poco tcnico (cosa que sabes que odio) pero realmente no
es ms que sumar dos variables que tienen nmeros en los valores. Imagina que tenemos
dos variables como estas:
$nota_primer_examen = 10 ;
$nota_segundo_examen = 8 ;
Advertencia: Los valores de las notas anteriores son ficticias, cualquier parecido con la
realidad son pura coincidencia, ja ja ja ja ja, ms hubiera querido yo, ja ja ja.
Apntate que para dar valores numricos a una variable no se le ponen comillas de ningn
tipo. Solo se ponen comillas al dar valores a una variable si se trata de textos (letras) o si se
trata de nmeros pero queremos tratarlos como un carcter ms, como si fueran letras,
como por ejemplo..... a ver... no caigo en ninguna ahora mismo...
Ah ya! Por ejemplo,
$numero_jesucristo = '888' ;
$numero_diablo = "666" ;
Casi seguro que los valores de estas variables no los vais a sumar ni multiplicar ni nada de
eso, de modo que cabe la opcin de declarar esos valores como texto (un nmero tambin
puede ser un texto, no?). Fjate que en este caso da igual usar comillas dobles o simples.
Pues volviendo al tema de la suma, para mostrar en pantalla el resultado de las notas de los
dos exmenes, podemos usar el echo del siguiente modo:
echo $nota_primer_examen + $nota_segundo_examen ;
Al tratarse de variables no es necesario colocar las comillas. Ahora vamos a aadirlas para
insertar dentro del echo algn comentario. Y como queremos que el servidor coloque los
valores en lugar de los nombres de las variables, usaremos las comillas dobles. Ves como al
final todo tiene su sentido?
El echo anterior con los comentarios quedara as:
echo "La suma de mis dos notas es $nota_primer_examen + $nota_segundo_examen." ;

Tenemos an otra opcin que es crear otra variable, darle el valor de la suma de las otras
dos y luego colocar el resultado de esa nueva en el echo. Creo que con un ejemplo lo vers
mejor....
$resultado = $nota_primer_examen + $nota_segundo_examen ;
echo "La suma de mis dos notas es $resultado" ;
Quizs todo esto del Php te est pareciendo un rollo tremendo... pero aguanta un poco ms
y empezars a verle la gracia, de verdad. Lo que ocurre es que antes de entrar a fondo hay
que saber algunas cosas bsicas imprescindibles. Los ejemplos vistos hasta ahora, y algunos
de los que siguen, no tienen mucho sentido. Decirle a una web que sume dos y dos cuando
sabemos que son... cuatro (son cuatro no? je je je) no es muy interesante, pero con esto
aprendemos a hacer operaciones con variables y luego, cuando lleguemos a la seccin de
formularios y a las bases de datos todo esto tendr bastante sentido. Te fe! y paciencia!
Adems de sumar valores de variables, podemos multiplicarlos, dividirlos, etc, etc, etc,
pero por el momento no nos va a hacer falta y prefiero ir viendo eso conforme sea
necesario. Ahora quiero ensearte unas cuantas herramientas bastante ms potentes.
Herramientas de Control Php

S, ya, ya, se que no te gustan los trminos tcnicos, a m tampoco pero te prometo que el
nombre real es an ms feo. Las herramientas de control de variables nos permiten hacer
algo si se cumple la condicin que indiquemos.
Por ejemplo, podemos hacer que una frase se muestre 20 veces una detrs de la otra, o que
se vean en pantalla los nmeros del 20 al 30, o mostrar un mensaje al visitante si es por la
maana, otro si es por la tarde y otro distinto si es de noche, o podemos hacer cosas ms
complicadas como dejar ver una parte de la web si y solo si el usuario se ha registrado, o
mostrar los mensajes escritos por l en un foro, o hacer que aparezcan en la portada las
novedades de los ltimos X das de forma automtica.... todo esto y mucho ms se consigue
dominando estas herramientas de control. Las ms usadas son solo cuatro o cinco y una vez
entiendes una se comprenden bien las dems, as que vamos a aprender a usar esas cuatro o
cinco y podremos avanzar bastante, vale? Asi me gusta, con decisin!

La herramienta de control If () Else {} de


Php
El funcionamiento de esta herramienta es bastante intuitivo. Usaremos la herramienta de
control if else siempre que queramos hacer funcionar una o varias sentencias de cdigo
cuando se cumpla una condicin. If significa "si..." y else significa "y si no..."

Ya sabes lo que son sentencias de cdigo verdad? Son simplemente lneas de cdigo Php o
Html que hacen algo. Y una condicin tambin sabes lo que es, por ejemplo, el que la
variable $nota_primer_examen sea mayor que 5. Pues bien, al usar la herramienta if else
podramos hacer que se nos mostrara en el navegador el mensaje "Enhorabuena, has
aprobado!" si el valor de esa variable es mayor que cinco y "Qu fracaso! Has
suspendido!" si el valor es menor que 5.
Esto ya es otra cosa verdad? Aunque sigue sin merecer la pena aprender Php para conseguir
solo esto, claro. Ms adelante vers como podemos hacer cosas ms interesantes, pero
necesitamos estos conocimientos mnimos para alcanzar cosas ms interesantes con Php.
Para escribir el cdigo del ejemplo este de las notas, valdra lo siguiente:
<?php
echo "<p>Voy a ver mis notas!</p>" ;
$nota_primer_examen = 8;
if ($nota_primer_examen < 5 )
{
echo "<p>Qu fracaso! Has suspendido con un $nota_primer_examen.</p>" ;
}
else
{
echo "<p>Enhorabuena, has aprobado con un $nota_primer_examen!</p>" ;
}
?>
Ahora que has visto el cdigo vamos a explicarlo paso a paso. Como ves, todo el trozo de
cdigo Php lo encerramos entre sus etiquetas de apertura y cierre de Php, como siempre, y
usamos echo para mostrar mensajes. La herramienta if else empieza con la palabra if
seguida de la condicin que queremos que se cumpla que se pone entre parntesis ( ), es
decir,
if (condicin que quiero que se cumpla)
Despus de eso, se coloca lo que quiero que ocurra si se cumple esa condicin, y lo pongo
entre corchetes { },
if (condicin que quiero que se cumpla) {lo que quiero que ocurra si se cumple la
condicin}
Tras eso, escribimos la segunda palabra mgica, else y seguidamente y entre corchetes { }
otra vez, escribimos lo que queremos que ocurra si NO se cumple la condicin que
pusimos, es decir,
if (condicin que quiero que se cumpla) {lo que quiero que ocurra si se cumple la
condicin} else { y si no se cumple ocurrir esto otro}

Imagino que ahora vers ms claro el cdigo Php del ejemplo que pusimos al principio. Si
lees detenidamente vers como lo primero que ocurre es que se muestra en el navegador el
mensaje "Voy a ver mis notas!". Despus, el servidor lee la tercera lnea y ve una variable
llamada $nota_primer_examen que vale 8. Lo memoriza y sigue leyendo.
Seguidamente, se encuentra con la palabra mgica if y busca la condicin entre los
parntesis. En nuestro ejemplo pone que el valor de la nota debe ser menor que 5 (el signo
< significa menor que). Como el servidor sabe que el 8 no es menor que cinco, decide que
la condicin no se ha cumplido y que por tanto debe hacer lo que ponga en el segundo par
de corchetes justo detras de else. Entonces lee lo que hay dentro y encuentra el mensaje de
enhorabuena y lo muestra en el navegador. A lo que hay dentro del primer par de corchetes
no le hace ningn caso, pues la condicin no se cumpla. Adems, como el echo que va a
ejecutar est entre comillas dobles sustituir el nombre de la variable de la nota por su
valor. Si ahora retocamos el cdigo y ponemos un 2 donde estaba el 8, el servidor mostrar
el mensaje de fracaso, pues el 2 es menor que 5.
Este ejemplo, aunque creo que ilustra bastante bien cmo funciona la herramienta if else,
no nos causa ningn asombro, no es nada del otro mundo la verdad, pues la nota ya la
teniamos puesta dentro del cdigo y sabamos cul sera el resultado. Pero pronto
aprenderemos a crear formularios y ser entonces cuando sean los propios visitantes los que
puedan rellenar sus notas en tu web y ver qu les dice el servidor! No? Tampoco es algo
grandioso? Y si en lugar de las notas de clase escriben en el formulario una clave y el
servidor les deja entrar en la web? Eso si es grande! Pues esto que acabas de aprender con
el if else es la base de eso, as que, vamos por buen camino!!!

La herramienta de control Switch de Php


Esta otra herramienta parecida a la anterior ejecutar un trozo de cdigo u otro segn lo que
valga una variable. Vamos a verlo de nuevo con un ejemplo:
<?php
switch ( $nota_primer_examen )
{
case 0: echo "Imposible estudiar menos." ; break ;
case 1: echo "Casi no has abierto el libro." ; break ;
case 2: echo "A este paso no vamos bien." ; break ;
case 3: echo "Solo estudiaste un da?" ; break ;
case 4: echo "Hui! Te falt muy poco!" ; break ;
case 5: echo "Bien, aprobaste por los pelos." ; break ;
default: echo "Eres un buen estudiante." ;
}
?>
Fjate que estas herramientas no terminan con punto y coma, pues no son sentencias. Las
sentencias son las que van dentro de sus corchetes y en esas s ponemos punto y coma.
Estas herramientas terminan con su corchete y listo.

Como puedes adivinar, cuando usamos el switch podemos hacer que el servidor ejecute
unas sentencias u otras segn el valor que tenga la variable que pondremos entre los
parntesis, en este caso, en funcin de lo que valga $nota_primer_examen.
Despus de escribir la palabra mgica switch y colocar entre los parntesis ( ) el nombre de
la variable, abrimos unos corchetes { } para escribir dentro todos los casos que queremos
tener en cuenta. En el ejemplo se han escrito sentencias para cuando el valor de la nota
fuera igual a 0, 1, 2, 3, 4 y 5. Despus de la palabra mgica default podemos an poner lo
que queremos que ocurra si el valor de la variable no coincide con ningno de los
anteriores, aunque podemos no poner el caso default si definimos lo que queremos que
ocurra para cada uno de los casos, para cada valor de la nota, del 0 al 10.
Despus de escribir la palabra mgica case, se pone uno de los valores de la nota, luego dos
punto y seguidamente la sentencia o sentencias que queremos que se cumplan en ese caso
concreto. Al terminar de escribir esas sentencias colocamos, como siempre, el punto y coma
y la palabra mgica break, que indica al servidor que ya puede dejar de buscar entre el resto
de casos e irse directamente fuera del switch.
En este ejemplo si la variable de la nota vale 2, se mostrar en el navegador el mensaje "A
este paso no vamos bien", y si por ejemplo la nota es superior a 5 se ir a default y
mostrar "Eres un buen estudiante".
Esta vez no he colocado las etiquetas Html de comienzo y principio de prrafo dentro de las
comillas de cada echo para que veas el cdigo Php ms clarito, pero conviene ponerlo para
que el texto aparezca como t deseas.

La herramienta de control While de Php


Con la herramienta while podemos hacer que se ejecute una sentencia o varias mientras que
se est cumpliendo la condicin que le digamos. Con esto, en un foro por ejemplo
podramos decirle al sevidor que vaya mostrando mensajes mientras que el nmero de
mensajes ya mostrados no sea mayor que 20, para no llenar la pantalla de mensajes
quedando demasiado larga. O en ese mismo foro podramos permitir a un usuario fallar X
veces antes de decirle que se vaya a buscar su contrasea. Pero se pueden hacer muchas
ms cosas, claro.
Como hicimos antes, vamos a verlo sobre un ejemplo.
<?php
$x = 25 ;
$y = 50 ;
while ( $x < $y )
{
echo "<p>Vamos por el nmero $x.</p>" ;
$x = $x + 1 ;

}
?>
Al principio del cdigo Php de arriba, hemos creado dos variables, una llamada x que vale
25 y otra llamada y que vale 50. Despus nos encontramos con la palabra mgica while
(que podramos traducir como "mientras que...") seguida de una condicin, que el valor de
x sea menor que el valor de y.
Si se cumple la condicin entonces se ejecuta lo que haya dentro de los corchetes { y }, es
decir, las dos lneas siguientes. La primera ya la conoces muy bien. Es un echo que muestra
en pantalla el mensaje "Vamos por el nmero 25."
La sentencia que va despus es nueva. En esa lnea le decimos al servidor que la variable $x
ahora va a valer lo que vala antes ms una unidad, y por tanto ahora su valor ser 26.
Como siempre, cerramos la sentencia con un punto y coma y como no queremos hacer nada
ms cerramos tambin el corchete.
Cuando el servidor llega al corchete regresa de nuevo a leer la condicin. Ve que la variable
$x que ahora vale 26 an sigue siendo menor que 50, de modo que ejecuta otra vez esas dos
lneas. Muestra el mensaje "Vamos por el nmero 26." y vuelve a sumarle uno a $x,
valiendo ahora 27.
Todo esto se repite una y otra vez hasta que $x tenga un valor de 50. En ese caso como 50
no es menor que $y, no ejecuta ms las sentencias de dentro de los corchetes y termina el
asunto. Se ira a seguir leyendo el resto del programa, es decir, se ira tras el corchete de
cierre del While. Si an recuerdas lo que te cont pginas atrs sabrs que si hubiera puesto
los valores 25 y 50 entre comillas el servidor las habra interpretado como texto y este trozo
de cdigo no funcionara, pues a la palabra 25 no le podemos sumar 1 siendo un texto (solo
podemos sumarle si 25 es un nmero).
Te habrs dado cuenta que tienes que aprender un par de cosas para poder expresar tus
ideas en forma de cdigo Php. Por un lado tienes que aprender a escribir condiciones para
poder hacer cosas cuando quieras que una variable sea mayor que otra, o menor, o igual, o
mayor o igual, etc, etc. Por otro lado debes aprender a crear funciones. Una funcin es algo
que transforma un valor en otro, como la lnea $x = $x + 1. De todas formas, intentaremos
explicarlo conforme lo necesitemos.

La herramienta de control For de Php


Esta otra herramienta de control es muy similar a la anterior. Se encarga de repetir una o
varias sentencias mientras va creciendo (o decreciendo) el valor de una variable. Esas
sentencias se seguirn repitiendo hasta que se cumpla cierta condicin. Lo vemos con otro
ejemplo?

<?php
for ( $contador = 25 ; $contador < 50 ; $contador = $contador + 1)
{
echo "<p>Vamos por el nmero $contador.</p>" ;
}
?>
Esta otra herramienta hace lo mismo que la anterior escrita con la herramienta while. La
forma de escribirla es la siguiente:
for (valor inicial ; mientras que se cumpla esto ; incremento) {cdigo a ejecutar}
Es decir, se escribe primero la palabra mgica for y despus entre parntesis ( ) se colocan
tres datos. El primero es lo que queremos que valga al principio la variable que controla las
veces que se va a ejecutar esto. Luego se escribe la condicin que se ha de cumplir para
seguir ejecutanto el cdigo de los corchetes. Despus se escribe cunto quiero que aumente
la variable de control cada paso. Estas tres cosas como ves hay que separarlas con punto y
coma entre ellas ($contador=25 ; $contador<50 ; $contador=$contador+1).
En el caso del ejemplo, el servidor se encuentra con la palabra mgica for y busca esos tres
datos dentro de los parntesis. Encuentra que la variable $contador vale 25. Luego lee que
tiene que ejecutar el cdigo de los corchetes mientras que esa variable sea menor que 50 y
finalmente lee que cada vuelta que se d tiene que sumarle 1 a la variable de control
$contador.
La primera vez $contador vale 25, y como es menor que 50 se muestra en pantalla el
mensaje "Vamos por el nmero 25.". Enseguida el servidor le da a $contador el valor 26
(le suma uno), muestra "Vamos por el nmero 26" y vuelve a sumarle uno a la variable de
control. As hasta que $contador tenga un valor de 50. En ese momento como $contador
NO es menor que 50 (sino igual) deja de ejecutar el cdigo y termina. Complicado? No,
verdad?
Pues con esto terminamos por el momento de ver herramientas de control de variables,
vale? Esto es suficiente para seguir avanzando en nuestro camino. Pasamos a otra cosa ms
interesante y ya ampliaremos cuando nos haga falta. Ya eres casi una mquina de
programar!

Las Bases de Datos


Para hacerte una idea de lo que es una base de datos, imagnate una tabla. No, no una tabla
de madera no, me refiero a algo como esto:

Fila 1
Fila 2

Columna 1
dato 1
dato 4

Columna 2
dato 2
dato 5

Columna 3
dato 3
dato 6

Fila 3
Fila 4

dato 7
dato 10

dato 8
dato 11

dato 9
dato 12

Esto de arriba es una tabla de datos. Solo tiene dos caractersticas y son el disponer de unas
cuantas filas (4 en el ejemplo) y unas cuantas columnas (3 en este caso). Una fila es toda
una lnea de datos horizontal mientras que una columna es lo mismo pero en vertical.
Recuerda las columnas romanas, que siempre van de arriba a abajo (bueno hay algunas en
ruinas que se han caido, pero esas no cuentan...).
Estos inventos nos van a servir para guardar datos y usarlos ms tarde. Estos datos pueden
haber sido colocados por nosotros mismos o bien podemos dejar a los visitantes (quizs
solo a los registrados o quizs a todo el mundo que quiera) que aadan datos a nuestra
tabla.
Imagina por ejemplo que a partir de un formulario pedimos a los visitantes sus datos
personales. Una buena forma de guardarlos es usando una tabla como esta. Cules seran
los datos personales que nos pueden interesar? Seguramente su nombre, apellido, direccin
e-mail, direccin de pgina web y si est registrado o no.
En una tabla de datos, las columnas representan cada uno de los datos que pediremos a los
visitantes, mientras que en cada fila se almacenan todos los datos de un visitante en
concreto.
La tabla del ejemplo, vacia, sera como esta:
Id nombre

apellido

direccin email

direccin web

Est registrado?

En la primera columna se suele guardar el nmero de la fila. Se suele llamar esta columna
Id, de identificador. Si ahora a travs de por ejemplo un formulario un par de visitantes
introducen sus datos, la tabla quedara por ejemplo as:
Id nombre apellido direccin email
1 Ana
Lopez analopez@webmail.com
2 Juan
Garcia juangarcia@webmail.com

direccin web
Est registrado?
www.analopez.com
si
www.juangarcia.com no

Una tabla de datos tiene un nmero concreto de columnas (aunque siempre podemos aadir
o quitar las que queramos) pero no tiene un nmero definido de filas. Estas van aumentando
conforme los visitantes vayan introduciendo datos y ms datos.
Una vez que tenemos una tabla con datos, podemos hacer bastantes operaciones para
obtener la informacin que deseamos en cada momento. Por ejemplo podramos hacer que
ordenara la tabla por orden alfabetico de los nombres, o que solo mostrara a todos los
Juanes, o nos enseara las direcciones de pginas web que terminen en .com, etc, etc, etc.
Tambin, a travs de cdigos Php podramos hacer llegar un E-Mail a los visitantes
registrados, o una invitacin de registro a los no registrados. De nuevo el lmite de

aplicaciones de tablas de datos los marca tu imaginacin. Tienes? Pues entonces no


tendremos problemas! je je je.
En las pginas siguientes vamos a aprender a crear una base de datos en nuestro servidor, a
crear tablas, definir sus datos y a llenarla de datos procedentes de formularios, etc. Y para
terminar, cuando controlemos todo eso empezaremos a jugar con todos esos datos para
crear aplicaciones interesantes para nuestras pginas web.
PhpMyAdmin

El Phpmyadmin es un programa que suele estar instalado en los servidores decentes y que
nos ayuda a crear y modificar bases de datos e incluso consultar, aadir, modificar o
eliminar los datos guardados en ellas con mucha facilidad. No todos los servidores gratuitos
disponen de este programa, de hecho algunos no te ofrecen ni siquiera una base de datos,
con lo cul no te hara falta el Phpmyadmin, claro. Pero cada da que pasa son ms lo que
ya lo estn ofreciendo. En cuanto a los servidores de pago, casi todos te ofrecen algunas
bases de datos para usar y acceso al Phpmyadmin. En la seccin Hosting y Dominios de
CCTW puedes ver algunos servicios de hosting que s te ofrecen todo esto. En cualquier
caso, puedes consultar con tu hosting actual si dispones estas cosas.
Para acceder al Phpmyadmin has de entrar primero al panel de control de tu servicio de
hosting. Con suerte el panel ser del tipo Cpanel que es el que vamos a explicar en CCTW.
De todas formas, si es otro distinto no variar mucho y te servirn igual todas estas
explicaciones. El Phpmyadmin es el mismo sea cual sea el panel de control del hosting.
Para acceder entonces al Phpmyadmin hay que entrar antes al panel de control de tu
servidor. Normalmente puedes acceder a tu panel de control Cpanel escribiendo la
direccin de tu web seguida de /cpanel. Si lo escribes en tu navegador te aparecer una
ventana preguntndote el nombre de usuario y la contrasea de tu hosting.

Si has adivinado tu contrasea entrars a tu Cpanel y vers a la derecha un montn de


iconos. Busca y haz clic en el que te sealo aqu debajo:

Al hacer clic all te aparezca otra pantalla del Cpanel desde la que puedes crear una base de
datos y un usuario con clave para acceder a la misma. La pantalla es esta:

Escribe ese nombre para la base de datos y pulsa sen "Create Database". Tras unos
segundos Cpanel te comunica que la base de datos ha sido creada con este mensaje:

Ya est creada nuestra primera base de datos para hacer pruebas. Si en la misma ventana
que tenemos arriba pulsamos en "Go Back" que significa "volver" y nos encontramos con
esto:

He sealado con un crculo rojo el nombre de la base de datos recien creada. Como ves, su
nombre completo est formado por el nombre de usuario que tienes para acceder al panel
de control seguido de un guin bajo y despus el nombre que le diste a la base de datos
hace unos segundos. Recuerda esto cuando en alguna parte te pidan dar el nombre de la
base de datos pues no es solo el que t pusiste sino que va precedido del nombre de usuario
del panel de control ms el guin bajo.
Otra cosa de la que me acabo de dar cuenta. No te molestes en colocar guiones bajos pues
se los salta y coloca las palabras juntas. Tras unas pruebas he visto tambin que si dejas un
espacio en blanco no hace caso de lo que hay detrs de este. As que escribe el nombre de la
base de datos todo junto y sin guiones y listo.
Justo al lado derecho del crculo rojo tienes una opcin (Delete) para borrar la base de datos
con todo su contenido (ahora mismo no tiene contenido), la opcin de chequearla (Check) y
la opcin de reparala (Repair). Debajo de todo eso vuelves a tener el recuadro anterior por
si quieres crear otra base de datos ms.
Ms abajo an tenemos ms opciones. La siguiente nos permite crear usuarios para acceder
(no al panel de control del hosting sino) a la base de datos que le indiquemos ms tarde. Ah
por el momento solo creamos usuarios y ms tarde indicamos qu usuarios pueden acceder
a qu bases de datos.
Vamos a crear ahora un usuario. Para ello es suficiente con escribir el nombre de usuario y
la contrasea en este recuadro de abajo:

Para no hacerte un lo, ms te vale que te vayas apuntando en un papelito tu nombre de


usuario y contrasea de tu panel de control y por otro lado el nombre de usuario y
contrasea para esta base de datos. De lo contrario quizs se te olvide. Como siempre, el
nombre de usuarios no tendra smbolos raros ni acentos ni maysculas ni espacios en
blanco ni guiones, para evitar problemas.
Una vez que pulsas "Create User" que significa "Crear Usuario" te aparece una pantalla de
confirmacin como esta:

Ale, usuario creado. Despus de pulsar de nuevo en "Go Back", que ya sabes lo que
significa, vers como aparece el usuario... pero... anda! Igual que ocurre con la base de
datos, al usuario se le antepone tambin el nombre de usuario del panel de control seguido
de un guin bajo. Recurdalo vale? En este ejemplo por tanto el usuario creado tiene el
nombre cartago_pepe.
Pasamos a la tercera parte. Ahora hay que decir qu usuario puede acceder a qu base de
datos y qu poderes va a tener sobre ella. Ahora mismo esto no tiene mucho sentido, pues
solo tenemos una base de datos y un solo usuario, pero cuando tienes varias bases y
usuarios tiene su sentido.
Esto se hace en la siguiente ventana de aqu abajo:

Esto es fcil tambin, donde pone "user" eliges el usuario (solo tienes uno, te ser fcil
saber cul escoger, no?), donde pone "database" escoges la base de datos a la que quieres
que pueda acceder ese usuario y debajo te aparecen todas las cosas que le dejas hacer, los
permisos que va a tener. Normalmente este usuario es para t, por lo que te puedes y debes

dar todos los poderes. Y como en ingls todo se escribe "All", marcas esa casilla y listo, es
como si hubieras marcado todas las de la derecha.
Quizs en un futuro quieras crear otro usuario para que acceda un amigo, o un visitante. En
ese caso puedes volver a hacer lo mismo pero limitando los permisos, marcndo solo lo que
le dejas hacer en la parte de la izquierda, donde estn todas esas opciones. Te comento
rpidamente lo que significa cada una, pero no creo que lo uses, al menos por ahora.
Select es para seleccionar datos solamente, insert para insertar datos en la base de datos,
update para cambiar el valor de los datos, delete para elimimar, create permite crear tablas,
drop creo que vaciarlas, lock bloquearlas y el resto.... an no lo se... ;( para qu te voy a
engaar, no?
Tras activar la casilla de All haz clic en "Add User To Database" que significa "Asociar al
usuario a la base de datos" y listo, todo preparado para continuar.

Conectar con la Base de Datos


Este punto es muy interesante tanto para seguir con las explicaciones como para alguna vez
instalar un foro en tu servidor tipo PhpBB, SMF, vBulletin, o cualquier otro de esos que
vienen hechos, o para instalar un blog, o un albm de fotos, o cualquier aplicacin que te
pida tener una base de datos activa, as que, presta atencin.
Los datos que tienes ahora para acceder a la base de datos son los siguientes:
Nombre de la base de datos:
nombredeusuariodelpaneldecontrol_nombredelabasededatos
Nombre de usuario de la base de datos:
nombredeusuariodelpaneldecontrol_nombredeusuariodelabasededatos
Contrasea:
la que has puesto, tal cul (esto no va con el nombre de usuario delante).
Host:
localhost (el 95% de las veces vale con poner localhost
Si alguna vez instalas algn programa en tu hosting o servidor y te pide tener una base de
datos, estos son los datos que has de darle, vale?
En el caso del ejemplo que os he puesto estos datos seran:
Nombre de la base de datos: cartago_basedepruebas
Nombre de usuario de la base de datos: cartago_pepe
Contrasea: noteladigo
Host: localhost

Acceder al PhpMyAdmin
Bueno, ahora que sabemos un poquito de Php y tenemos la base de datos creada podemos
ya aprender a insertar datos en ella. Primero veremos cmo incluir datos usando el
PhpMyAdmin y ms tarde crearemos unos formularios en Php para hacer lo mismo pero de
un modo ms cmodo, desde nuestra propia web.
Para acceder al PhpMyAdmin tienes que entrar en el panel de control de tu servidor. Si
dispone de Cpanel encontrars el icono de acceso a PhpMyAdmin que es como este (el de
abajo de la imagen):

Recuerda que para entrar en tu Cpanel tienes que escribir en tu navegador la direccin
completa de tu web (tu dominio) seguido de /cpanel y rellenar tu nombre de usuario del
hosting (no el de la base de datos an) y la contrasea correspondiente.
Al entrar vers una pantalla como esta:

Tachaaaan!! Espero que tengas suerte y est en espaol, je je je. Si lo tienes en ingls no te
ser muy dificil seguir el curso creo, pues te mostrar dnde has de hacer clic y pondr algo
parecido.
En la parte izquierda de esa ventana, la parte oscura, puedes ver una lista de las bases de
datos existentes. En mi caso, la imagen de arriba, aparece la que hemos creado siguiendo
las instrucciones de antes y otra que debe ser de alguna aplicacin del servidor, no estoy
seguro, as que la dejo ah tranquila.
El nmero que aparece entre parntesis a la derecha de cada base de datos de esa columna
representa la cantidad de tablas que contiene esa base de datos. Nuestra base de datos de
ejemplo est vacia y por eso pone (0). La otra como ves si tiene varias tablas.
Del resto de enlaces y opciones que vemos en la parte de la derecha no vamos a usar nada
an, lo haremos todo desde la base de datos de pruebas, llamada cartago_basedepruebas en
mi caso y tunombreusuario_basedepruebas en el tuyo.
Para empezar a jugar tenemos que crear la primera tabla de datos, vamos all.

Crear la Base de Datos

Por si no te lo he dicho, una base de datos est formada por una o varias tablas de datos.
Luego, cada tabla de la base de datos contiene datos. Nosotros ya tenemos creada la base de
datos, pero nos falta crearle tablas dentro donde guadar los datos.
Para crear una tabla nueva en la base de datos basedepruebas primero hacemos clic (con un
solo clic es suficiente) en el nombre de la base de datos de prueba, en la lista de la izquierda
de la ventana del PhpMyAdmin. Aparece esto:

Lo siguiente parece sencillo, verdad? Escribimos el nombre de la nueva tabla en el hueco


en blanco que hay a la derecha de Nombre y ponemos el nmero de campos en el recuadro
de al lado. Luego pulsamos en Continuar y listo. Vamos a escribir siempre los nombres de
las tablas con todas las letras en mayscula, oki? Se pueden usar tambin las minsculas,
pero asi las distinguiremos mejor dentro de los cdigos Php. Recurdalo.
A esta primera tabla la llamaremos USUARIOS y le colocaremos 4 campos. Pero qu es un
campo? Pues no, no es un montn de tierra con arbolitos y tal, lo siento. Los campos son
las distintas informaciones que queremos guardar. Por ejemplo, si queremos guardar en una
tabla el nombre de los usuarios, su e-milio, su direccin web y su estado (activo o inactivo),
cada una de estas informaciones distintas es un campo. Por tanto, para esos datos que
comento necesitaramos 4 campos, o mejor, 5 campos si aadimos uno ms que usaremos
para almacenar el nmero de usuario, algo as como su nmero de socio. Vamos a crear
entonces esa tabla de USUARIOS con sus 5 campos escribiendo esto que ves en la imagen
de abajo:

Tras pulsar en "Continuar" veremos esto:

Ufff, esto si que suena a chino, ja ja ja ja. Nos aparecen un montn de datos a rellenar para
cada uno de esos 5 campos que queremos para la nueva tabla. En la imagen de arriba
puedes ver unos cuantos, pero si mueves la barra de desplazamiento de tu navegador en tu
PhpMyAdmin hacia la derecha an vers unos pocos ms. Vamos a ver lo que significa
cada uno de esos huecos para poder rellenarlos, oki? Una vez relleno no hay que tocarlo
ms, as que merece la pena seguir.

Campo
En esta primera columna escribiremos el nombre que queremos para identificar a ese
campo concreto. Nosotros queramos crear los campos nombre de usuario, direccin de
correo, direccin de la pgina web del usuario y si est activo o no (por si queremos
desactivar a alguno que se porte mal.... je je je) por tanto los nombres que pondremos sern
estos:

Al igual que con los nombres de las tablas, los escribiremos en maysculas y sin espacios
en blanco. Cuando sea necesario separar lo haremos con guiones bajos pero intentaremos
evitarlo. El primero de los campos lo he llamado ID (de Identificador) y es donde
guardaremos el nmero de usuario.

Tipos
Los datos que podemos guardar en una base se pueden clasificar en distintos tipos. Como
no se consideran igual una fecha, que un nmero, ni un texto de unas pocas letras a un texto
largo, ni un nmero entero que uno decimal, se han creado varios tipos distintos. En esta
columna de PhpMyAdmin debemos seleccionar el tipo que queremos para cada uno de los
campos creados.

El asignar un tipo a cada campo es para optimizar la base de datos y agilizarla. Al igual que
es una tonteria tener un garaje para guardar un patinete, sera un desperdicio reservar un
hueco grande de memoria para almacenar un dato que suele ser pequeo. Es por eso que
interesa asignar a cada campo el tipo adecuado, para no desaprovechar.

Vamos a ver de una pasada rpida estos tipos:


Juas!!! De verdad que yo ceia que haba menos tipos de tipos! ja ja ja, me he asustado
cuando he abierto el desplegable, madre ma... Bueno, si te parece bien (d que s por favor,
ja ja ja) solo explicar aqu los que vamos a usar en este ejemplo e iremos viendo algn otro
conforme lo usemos ms adelante. Si no no terminamos las explicaciones nunca, je je je,
qu disparate.
Bueno, pues por eso de aprovechar al mximo, daremos a cada uno de esos campos el tipo
de dato adecuado al mximo valor que cada campo pueda tener, o lo que es lo mismo, si el
coche ms grande que puedo llegar a tener puede tener 5 metros de largo, escoger un
garaje de 5 metros de largo como mucho, para no desperdiciar espacio.
El campo ID va a ser entonces un nmero entero (entero significa sin parte decimal, sin
comas) y como mucho imagino que tendremos unos 9999 usuarios registrados (no estara
mal para empezar verdad? je je je). Le asignamos entonces un tipo de dato que acepte
nmeros enteros de hasta 9.999, es decir, nmeros de hasta cuatro cifras. Un tipo correcto
para este dato ser SMALLINT que significa "pequeo entero" y acepta valores de nmeros
enteros hasta el 65535... y eso que es SMALL! je je je.
Al campo NOMBRE le asignaremos un tipo de dato que acepte letras y como mximo
tendr unos 50 carcteres (espacios) as que le daremos el tipo VARCHAR. Es un tipo de
dato que admite valores de hasta 255 carcteres de largo y que ocupar un espacio
proporcional a la cantidad de letras que tenga.
El campo EMAIL solo se diferencia del anterior en la arroba, y como se admite como
carcter usaremos tambin el tipo VARCHAR para l. Aplicaremos tambin VARCHAR
para el campo URL.
El campo ESTADO es solo para saber si el usuario est activo (si puede entrar en la web) o
si por el contrario ha sido desactivado, por mal comportamiento o por lo que sea. Para saber
el estado solo necesito dos valores que pueden ser "Activo" e "Inactivo" por lo que
usaremos el tipo ENUM. Los tipos ENUM se usan cuando se va poder elegir de entre una
serie de valores ya conocidos, en nuestro caso, Activo e Inactivo nada ms.
Por ahora nos quedamos con con solo esos tipos, ya veremos otros ms adelante. La
columna donde asignamos los tipos a cada campo quedar entonces as:

Longitud y Valores
Esta columna no es tan complicada. Aqu se coloca la longitud mxima que puede llegar a
tener un dato de cada uno de los campos. Existen casos en los que podemos elegir qu
valores concretos puede tomar un campo. Por ejemplo, aceptar solo los valores "soltero",
"casado", "viudo", "divorciado" y "separado". En esos casos sera aqu tambin donde se
indicaran esos valores posibles, pero eso lo vemos mejor con el ejemplo del ESTADO
Activo e Inactivo.
Colocamos aqu entonces la longitud mxima del valor ms largo que creemos que
podemos llegar a tener. No se refiere al valor mximo, sino a lo largo que va a ser el datos
ms largo en ese campo. Por ejemplo, el nmero 10000 es 5 cifras de largo, el 3 es de una
cifra de largo, la palabra "capica" es de 7 carcteres de largo, no? Pues ese es el dato a
poner en esta tabla, el largo mximo que podra llegar a tener un valor.

Si te fijas en lo que hemos puesto en el ltimo campo vers que en lugar de la longitud
hemos escrito todos los valores que permitimos que pueda tener el campo ESTADO, es
decir, Activo e Inactivo. Para escribir en ese hueco los valores posibles hay que hacerlo
separando cada uno con una coma y encerrando cada uno con comillas simples, que se
escriben con la tecla que hay junto al cero en el teclado. Ahora ya sabe que si intentas poner
otro valor distinto a esos te saldr un error.
Qu, a que parece que se mucho de esto? Ja ja ja, lo cierto es que lo acabo de leer en la
parte de abajo de esa misma pantalla del PhpNyAdmin, je je je je. Mira, pone esto:

No te preocupes mucho por ninguno de los valores de todas estas caractersticas pues se
pueden modificar ms adelante.

Cotejamiento
Esta palabra tan rara es para indicar qu tipo de codificacin queremos usar para los valores
de estos campos. Si fueras chino necesitarias codificar los datos con un tipo de
cotejamiento que admitiera los smbolos chinos, al igual que si fueras musulman o en
definitiva si quisieras escribir con signos raros. Nosotros no somos tan normales tampoco,
pues querremos aceptar la o los acentos en nuestros valores (aunque no suelas usarlos... je
je je), as que tendremos que escoger el tipo de cotejamiento adecuado.

Si abres el desplegable vers que se muestran un montn de tipos que por supuesto no voy
a explicar uno por uno, je je je. Nos conformaremos con saber que tomando uno de ellos no

tendremos problemas con nuestros valores. Escogeremos el tipo de cotejamiento


"utf8_spanish_ci" quedando as nuestro ejemplo:

O mejor an, dejamos esos huecos en blanco y escogemos el cotejamiento utf8_spanish_ci


pero en la parte de abajo. En esa parte indicamos el cotejamiento de toda la tabla, con lo
que dejar de ser necesario indicar el cotejamiento de cada campo. Te indico en la imagen
de abajo dnde escojer el cotejamiento para toda la tabla:

Atributos
Atributos es el nombre de la siguiente columna. Si haces clic en su desplegable vers los
valores que podemos dar en esa columna a cada campo. Nos son demasiados, gracias a....
Rasmus Lerdorf!!, creador del PHP. Qu cultos somos en CCTW verdad? (y que bueno es
saber buscar en Google, je je je je je).

Estos atributos, opcionales siempre, significan lo siguiente:


Binary: Este atributo no lo controlo demasiado an. Creo que sirve para ordenar campos de
texto no por su orden alfabtico sino segn su valor binario... cosas raras como ves, je je je.
Lo olvidaremos por el momento, oki?
Unsigned: Significa que los valores son siempre positivos, sin signo negativo. Gracias a
esto, su un tipo de campo solo puede tener valores desde -255 hasta +255, eliminando el
signo podra tomar los valores desde el 0 hasta el 510. Se usa con los tipos de datos
numricos.
Unsigned Zerofill: Adems decumplir lo anterior, rellena con ceros todos los espacios a la
izquierda del nmero. As, si un campo es de tipo numerico de hasta tres carcteres, en
lugar de representarlos como 1, 14 o 97, les dara los valores 001, 014 y 097
respectivamente.
On Update Current_Timestamp: Se usa para tipos de fecha. Si se escoje este atributo y el
campo es del tipo fecha, si no se rellena este dato el servidor le asignar la fecha y hora que
tena el servidor en ese momento. Puede servir si interesa conocer la fecha y hora de
cuando se insert ese dato en la base de datos.
Visto lo visto..... qu atributo asignamos a nuestros cinco campos? Solo se me ocurre
asignar el atributo Unsigned Zerofill al campo ID, pues es un valor numrico, no tiene
sentido que sea negativo y.... no viene mal que tenga ceros a su izquierda, no? Los dems
los dejaremos en blanco y esa columna quedara as:

Nulo
No, no es a t, t no eres nulo!! je je je, t eres ya un pedazo de Webmaster, je je. Con nulo
me refiero a la siguiente columna que tenemos que rellenar. Esta no es complicada. Los
valores que podemos dar en este caso son o "null" o "not null" que significa "acepto datos
nulos o vacios" o "no acepto datos nulos, vacios". Si colocamos el valor "nulo" en uno de
estos campos significar que es un dato obligatorio, que no se puede dejar en blanco. Por
ejemplo, los valores del campo NOMBRE o el de ID o ESTADO deberan ser siempre no
nulos, en cambio los valores de url de nuestro ejemplo podemos dejarlo en null, lo que
significa que se puede dejar en blanco, que acepta el valor nulo o valor en blanco.

Esto es lgico pues habr usuarios que no tengan pgina web y por tanto no podemos
obligarles a que escriban la direccin en el campo URL, pero en cambio un nombre s que
han de tener y por eso lo dejamos en "not null" pues no debe dejarse vacio.
Dejaremos por tanto estos valores (borro el resto de columnas en la imagen para hacer
hueco...):

Predeterminado
Esta tampoco es dificil. En la columna de "predeterminado" podemos escribir el valor que
queremos que tenga cada campo cuando an no le hemos escrito otro distinto. Por ejemplo,
si usamos esta tabla para pedir la informacin a los usuarios a travs de un formulario, los
valores que no escriba el visitante en el formulario sern sustituidos por los valores por
defecto o predeterminados que sealemos aqu.
Optaremos por colocar Activo de forma predeterminada en el campo ESTADO de forma
que a menos que cambiemos el valor por Inactivo, el usuario ser Activo de forma
predeterminada. Adems escribimos http:// en el campo URL. En el resto no se me ocurre
poner nada ahora mismo. Quedara as entonces:

Extra, AI o AutoIncremento
No sufras, ya queda menos, je je je. Mralo por el lado bueno, y es que ya has aprendido un
montn de cosas de bases de datos, no? En la columna "Extra" solo tenemos una opcin
que tomar. Si abres el desplegable vers que solo podemos escoger el valor

"auto_increment". Esta caracterstica indica que cada vez que se introduzca un valor en la
tabla, este valor se generar automticamente sumando uno al ltimo valor que existe en la
base de datos.
Segn la versin de PhpMyAdmin que tengas, quizs no te aparezca eso de Extra, sino otro
campo llamado A_I o AutoIncrement. Pero todas ellas significan y funcionan del mismo
modo.
Por ejemplo, si uno de los campos es un nmero y le activamos el "auto_increment", si el
primer valor de la tabla tiene el nmero uno el siguiente que introduzcamos tomar el
nmero dos automticamente y as sucesivamente. Lo usaremos en el campo ID. As, sin
necesidad de darle ningn valor, el servidor le ir dando nmeros consecutivos, desde el
001.
En el resto de campos no tiene sentido as que lo dejamos en blanco para el resto.

Primaria, Indice, Unico y Texto Completo


Con esto casi terminamos. Despus de la columna "Extra" tenemos varias opciones que
podemos activar o no. Si dejas el puntero del ratn sobre cada uno de esos 4 nuevos iconos
vers que aparece un cartelito indicando "Primaria", "Indice", "Unico" y "Texto Completo".
Solo podemos activar uno de los tres primeros valores, no nos permite activar dos o tres de
esos valores a la vez. Tambin aparece una columna con tres guiones "---" que significa que
no damos ninguno de estos valores a ese campo. Veamos lo que significa cada uno.
Primaria: Para no liarnos, diremos que en cada tabla debe haber un campo ms importante
que el resto. Debe ser uno que sea diferente cada vez que introducimos los datos de otro
usuario y que sea bastante representativo. En nuestro caso pienso que el campo NOMBRE
sera el idoneo para ser la clave Primaria, pues no hay (o no debe haber) dos iguales y es
bastante representativo.
Como es obligatorio que en cada tabla haya un campo (y solamente uno) con la clave
Primaria activada, lo pondremos activo en el campo NOMBRE. Est claro que si
NOMBRE es la clave primaria no puede aceptar valores en blanco o valores nulos, verdad?

Indice: Los indices se utilizan para mejorar y agilizar la bsqueda de datos dentro de la
tabla.
Unico: Esta clave significa que no pueden haber dos o ms datos con el mismo valor.
--- : Esta casilla aparecer activada si no se ha escogido ninguna de las tres anteriores.
Texto Completo: Esta an no se lo que es...

Y los Comentarios
No, no es que os vaya a comentar algo ahora, ya he escrito bastante, no? Je je je.
Comentarios es el nombre de la ltima (por fin!) columna de valores que hay que definir al
crear una tabla nueva. Afortunadamente esta columna no es obligatorio completarla. Se usa
para aadir alguna nota tuya que te sirva para aclararte un poco. Por el momento no la
vamos a utilizar, ya est bien, y tenemos ganas de terminar esta parte de una vez, verdad) ja
ja ja. Pues eso, la dejamos en blanco.

Insertar Datos en la Base


Ahora que tenemos la tabla de datos lista llega la hora de empezar a aadirle datos. Se me
ocurren dos formas de insertar datos en la tabla, la primera es a travs del panel de
PhpMyAdmin y la segunda forma es diseando unos formularios en el que tras escribir los
datos que queremos sean mandados a la base de datos sin ms que pulsar un botn.
En esta seccin vamos a ver la primera forma, usando el panel de PhpMyAdmin pues en
ocasiones nos vendr muy bien. Despus os explico cmo hacerlo a travs de un
formulario.

Tienes abierto el PhpMyAdmin? Abrelo y pulsa primero sobre el nombre de la tabla en la


que quieres insertar datos, de la lista de tablas que aparece a la izquierda y luego clic de
nuevo donde pone "Insertar" en la parte de arriba:

En ese momento te aparecer una ventana en la que puedes insertar los valores de la nueva
fila de datos. T tienes que rellenar los recuadros que hay bajo la columna llamada
"Valores",
Una vez rellenos los datos pulsa sobre el botn en el que pone "Continuar" o bien ve ms
abajo donde encontrars otro recuadro igual por si quieres insertar datos de otra fila ms.
Cuando termines pulsa en "Continuar" y los dato quedaran guardados en la tabla.

Qu es un Formulario

Como hemos visto anteriormente, podemos insertar nuevos datos en la tabla de la base de
datos a travs del PhpMyAdmin pero, qu ocurre si queremos que sean los usuarios los que
rellenen esos datos? Vamos a tener que darles acceso al PhpMyAdmin? Te fias? je je je je.
Adems.Te imaginas tener que aadir los datos directamente usando el MySql? Uno a uno?
Qu horror! Con lo fcil que sera rellear un formulario y hacer que sa este el que
incorpore los datos a la base de datos, no?
Para evitar todo eso podemos funcionar con los formularios. As y sin necesidad de acceder
al PhpMyAdmin tanto los usuarios como nosotros mismos podremos aadir datos a la tabla
desde cualquier parte en la que dispongamos de conexin a internet. Ser cosa de rellenar
recuadros, hacer clic en un botn y.... listo! Base de Datos rellenada!

Pues vamos all con las lecciones sobre cmo crear un formulario para el envio de datos a
la base de datos desde una pgina web. Todas estas instrucciones son igualmente vlidas
para la creacin de formularios de cualquier otro tipo, como envo de correos, etc. A ver si
consigo explicarlo bien y te gusta como ha quedado.

Crear un Formulario
Realmente los formularios se hacen con lenguaje Html. El Php lo usaremos para jugar con
los datos que se obtienen, pero el formulario en s est hecho con cdigo Html. Vamos a ver
como se construye y qu opciones tenemos para que nuestros amigos puedan enviarnos
datos o para rellenarlos nosotros mismos.
Al igual que un prrafo se define en Html colocando la etiqueta de apertura <p> y termina
con su correspondiente etiqueta de cierre </p>, los formularios empiezan y terminan con las
etiquetas Html <form> y </form>.
Dentro de la etiqueta de apertura se pueden indicar algunas cosas, pero las que nos
interesan ahora son:
action: que indica la url a la que enviar los datos del formulario, es decir, la pgina que
tiene las instrucciones de qu hacer con los datos obtenidos desde el formulario.
method: Puede tomar los valores get o post. Existen varias diferencias entre ambos aunque
funcionan igual. La diferencia es que usando get los datos del formulario se ven en la url de
la pgina siguiente y el nmero de valores est limitado. En cambio usando post no se ven
los valores en la direccin de la web y adems no hay tal lmite de valores a recopilar. As
que, por ahora, usaremos siempre post, vale?
Con lo que acabamos de ver, un ejemplo de formulario vacio sera:
......
<form method="post" action="mostrardatosenpagina.php">
......
</form>
.......
Seguimos? Ahora que tenemos preparado el formulario vamos a ver qu tipo de recuadros
donde insertar informacin podemos colocar dentro. Existen varios tipos o formas y puedes
y debes elegir la que ms se amolde a los datos de la tabla o base de datos, veamos.

Campos de Datos
Como te he dicho, dentro de un formulario puedes encontrar distintas formas de pedir los
datos. Puedes pedir al visitante que indique uno o varios de entre un conjunto de valores,

que introduzca una palabra, una frase corta o incluso un buen trozo de texto, o una clave o
contrasea, y hasta archivos, claro. A continuacin veremos cada uno de esos tipos. Fjate
que todos ellos tiene un cdigo muy similar:
<input type="tipodedato" name="nombredelcampo" value="Escribe Aqu" size="20"
maxlengh="20" />
- Empiezan con el cdigo <input, su etiqueta.
- Estn seguido de una indicacion del tipo de informacin que se pide, type="tipodedatos".
En lugar de tipodedatos nosotros colocaremos ah qu tipo de datos vamos a pedir al
usuario. Lo veremos ms adelante.
- Seguido del nombre de ese campo de informacin name="nombredelcampo", que es el
nombre que daremos a lo que el usuario escriba y que nos sirve para poder usarlo ms
tarde.
- Despus se indica el valor que queremos que aparezca por defecto en el formulario
value="Escribe Aqu". Si se deja en blando el cuadro o campo del formulario saldr en
blanco, pero si escribimos dentro de las comillas de value, por ejemplo "escribe ac tu
comentario", ser eso lo que aparezca escrito cuando el usuario visualice el formulario. Por
supuesto, podr borrarlo para ecribir su comentario.
- Tamao del recuadro donde se pide la informacin size="100". Es simplemente el ancho
del recuadro. Que lo escojamos pequeo no significa que el visitante no pueda escribir
muchos carcteres en l, eso viene definido por la siguiente caracterstica,
- Longitud mxima que podemos dar a ese datos maxlegth="20", que es la mxima
cantidad de carcteres que vamos a guardar de lo que el usuario escriba. Si le ponemos 20 a
maxlength solo guardaremos los 20 primeros carcteres que escriba y al resto no le haremos
ni caso, se pierden.
Y finalmente se cierra la etiqueta del input con /> En este caso como ves no hay etiqueta de
cierre con </input> nunca. Recurdalo.

Campos de Texto
Es el tpico recuadro para insertar datos en los que cabe una lnea de texto solamente. Eso
significa que si te pones a escribir dentro de ese recuadro, si le das al Enter o Intro de tu
teclado no vas a conseguir un salto de lnea para seguir escribiendo ms texto.
El cdigo Html para incluir un recuadro de estos en tu pgina web sera como este:
<input type="text" name="nombredelcampo" value="Valor por defecto" size="20"
maxlength="20" >

El aspecto del cdigo de arriba sera este:


Valor por defecto

No necesita mucha explicacin, pero por si acaso...


La linea comienza con la etiqueta input, que indica que vamos a colocar un recuadro para
introducir datos. Luego aparece type="text" con lo que sealamos que ese recuadro ser
para introducir texto. Con name="nombredelcampo" la damos un valor a ese recuadro, que
nos servir para poder manejar el valor introducido despus. Con value="valor por defecto"
podemos indicar el valor que queremos que aparezca dentro del recuadro en cuanto el
visitante vea esa pgina, si es que queremos que aparezca algo. Si no, podemos dejarlo en
blanco y el campo aparecer vacio, claro. Para terminar tenemos size="20" que indica el
tamao o anchura del recuadro y maxlength="20" que pone un lmite a la cantidad de texto
que dejaremos que el usuario escriba en el formulario y que en este caso ser de 20
carcteres. No parece muy complicado, no? Je je je je.

Campos de Contrasea
Este tipo de campo es muy similar al anterior, pero en este caso indicamos que la
informacin a insertar va a ser una contrasea y por lo tanto queremos que cuando el
visitante la vaya escribiendo se vayan monstrando asterscos (*) en lugar de la contrasea
real. Esto es para evitar que alguien pueda leer la contrasea mientras que nuestro amigo
visitante escribe los datos del formulario.
Su cdigo es este otro:
<input type="password" name="nombredelcampo" value="Valor por defecto" size="20"
maxlengh="20" />
Y este es su aspecto. Intenta escribir en ese recuadro y vers los asterscos que te deca.
*****************

Personalmente me parece una chorrada como un piano de grande, je je je, pero en fin, es lo
que hay. Por supuesto puedes usar un campo de texto normal si quieres lo mismo pero
viendo el resultado. Como no estamos en un cajero de un banco, igual no necesitamos esos
asterscos, no? je je je.
Hey, has merendado ya? Me hace ruido la barriga! je je je. Un bocado y seguimos, oki?

Botones de Opcin
Cuando quieras mostrar al visitante una lista de valores de entre los que tiene que elegir uno
solo, tienes que usar botones de opcin. Dentro del cdigo Html que define este botn de
opcin tendrs que indicar cada uno de esos valores, claro.
Es importante que recuerdes que con este tipo de formulario el visitante SOLO puede
escoger uno de los valores, es decir, es imposible activar dos o ms valores. Si lo que
quieres es dar la opcin de que el visitante pueda seleccionar ms de una de las opciones,
tendrs que buscar otro modo, que explicaremos ms adelante.
Veamos el cdigo de un botn de opcin de ejemplo para verlo ms claro:
<INPUT type="radio" name="mibotondeopcion" checked value="1">Estudiante<br />
<INPUT type="radio" name="mibotondeopcion" value="2">Astronauta<br />
<INPUT type="radio" name="mibotondeopcion" value="3">Mdico<br />
<INPUT type="radio" name="mibotondeopcion" value="4">Webmaster<br>
Las caractersticas de los botones de opcin son las siguientes:
- Dentro de type hay que indicar "radio" que significa botn de opcin (no, no es para
escuchar msica...)
- Todos han de tener el mismo valor dentro de name para que el navegador sepa que todas
estas lneas corresponden a opciones de ese botn.
- checked. Esto se coloca solamente en una de las lneas, en la que t quieras pero solo en
una, pues indica la opcin que aparecer activada por defecto. Si no lo indicas en ninguna
no aparece ninguna de esas opciones marcada de antemano. Es opcional.
- Dentro de las comillas de value indicas el valor que quieres que tenga esa opcin. Puede
ser un nmero o el texto de esa opcin. Est claro que deberian ser distintos esos valores en
cada opcin.
- El texto que hay antes de <br> es el texto que aparece en el navegador Puedes escribir lo
que quieras que el visitante vea como opcin, pero el valor que recogers del formulario
una vez que se enve ser el que hay dentro de value, no este.
- Finalmente tenemos la etiqueta Html <br> que como sabes sirve para bajar una lnea. La
ponemos para que no aparezcan todas las opciones pegadas una tras otra. Esto es opcional y
lo puedes hacer de cualquier otro modo, a tu gusto.

El cdigo que te he mostrado arriba para los botones de opcin mostrara esto de abajo:
Estudiante
Astronauta
Mdico
Webmaster

Fjate como la opcin Estudiante aparece ya marcada por defecto. Esto es porque hemos
puesto checked en esa lnea.

Casillas de Verificacin
Es muy parecido a los botones de opcin pero en este caso ofreces la opcin de poder
seleccionar varios de los valores en lugar de solamente uno. Lo nico que cambia en el
cdigo Html es que ponemos el tipo "checkbox" dentro de type, que significa casillas de
verificacin.
Y claro, como podemos tomar uno o ms valores, o todos, tambin nos permite dejar
activadas ninguna, una o varias casillas escribiendo la palabra mgica checked en las lneas
de cdigo correspondientes.
<input type="checkbox" name="micasilladeverificacion" checked value="1"
/>Estudiante<br />
<input type="checkbox" name="micasilladeverificacion" value="2" />Astronauta<br />
<input type="checkbox" name="micasilladeverificacion" value="3" />Mdico<br />
<input type="checkbox" name="micasilladeverificacion" checked value="4"
/>Webmaster<br />
El cdigo de arriba creara unas casillas de verificacin o Checkbox como estas de abajo:
Estudiante
Astronauta
Mdico
Webmaster

Date cuenta en el cdigo de arriba, que he colocado la etiqueta <br /> al final de cada lnea.
Recuerdas para qu? Si, significan saltos de lnea y las he colocado para que la casillas
aparezcan una en cada lnea y no una tras otra en una sola lnea. Solo era para recordrtelo.
De nuevo puedes ver como aparecen activas ya las casillas en las que pusimos la palabra
mgina checked. An as, el usuario puede desactivarlas y marcar otras distintas si quiere.

Carga de Archivos
Esta seguro que os gusta pues es una pregunta que he leido muchas veces en el foro. Ahora
se responderla, je je je, as que ah va. El botn de carga de archivos nos permite mostrar al
visitante su explorador de archivos, una ventana desde la que puede buscar los archivos de
su ordenador, seleccionar uno de ellos y mandrnoslo a nosotros o a nuestra pgina a travs
del formulario. Mola, no?
El cdigo para este objeto del formulario es el siguiente:
<input type="file" name="imagendemilogotipo" accept="image/*.gif ">
donde con accept se indica el tipo (MIME) de archivo que acepta el formulario. En el caso
del ejemplo de arriba solo se aceptarian archivos de imagen del tipo gif (pues hemos puesto
*.gif). Veremos con ms detalle todo esto ms adelante. Por el momento nos quedamos con
la lnea de cdigo necesaria para insertar esa opcin en el formulario.
Como ves, poco a poco vamos aprendiendo nuevas herramientas sorprendentes. Podras
imaginar ya cules de estas herramientas usa tu foro favorito, o alguna web de descarga e
incluso algn juego online, verdad? Dominando Php y MySql podras crear cualquier cosa.

Listas de Datos
En esta ocasin se muestra al visitante una lista de opciones, que o bien puede ser
desplegable (cuando el visitante pulsa el icono de la flechita se despliega la lista de
opciones de entre las que puede elegir) o bien puede aparecer ya desplegada, con barra de
desplazamiento si fuera necesario.
En este caso algunas de las palabras mgicas que definen a este objeto de formulario
cambian un poco de significado. Por ejemplo size en este caso indica la cantidad de
opciones que queremos mostrar a la vez en la lista. Si ponemos valor 1 la lista ser
desplegable.
Aparece una palabra mgica nueva, "multiple" que indica si se pueden o no tomar ms de
una de las opciones. Si la lista es desplegable no se puede usar multiple pues una lista
desplegable no nos permite seleccionar varios valores (lo has intentado alguna vez? La lista
se cierra al hacer clic en una de las opciones y te impide escoger otra).

En las listas, si queremos indicar un valor seleccionado por defecto tenemos que usar la
palabra mgica selected, no checked como en las casillas de verificacin, pues aqu
seleccionamos, no marcamos.
Vamos a ver un ejemplo para terminar de entender todo esto, vale?
<select name="comidapreferida" size=1>
<option value="tortilla">Las tortillas</option>
<option value="paella">La paella</option>
<option value="pizza">Las pizzas</option>
</select>
Con este cdigo de arriba obtenemos esta lista de abajo:
Como le hemos puesto en el cdigo size=1, obtenemos una lista desplegable. Dijimos que
size indicaba la cantidad de opciones que queramos mostrar a la vez. Si ponemos por tanto
size=2 veremos dos opciones o items (tambin se llama as a cada elemento en los libros
esos de listillos...) y el resto se ve desplazando la barra de desplazamiento:
Poniendo 3 se vera entera, desplegada totalmente y claro, no aparecera la barra de
desplazamiento vertical:
Recuerda que lo que ve el visitante es lo que hay justo ants de </option> mientras que lo
que t recibes del formulario es el valor que has colocado dentro de las comillas del
value="....".
Pues ya sabes un montn sobre formularios! je je je. Ya me puedes ayudar a responder a los
compaeros del foro que tengan dudas! ja ja ja. Gracias en ese caso! Seguimos un poco
ms?

Campo Multilnea
Los objetos de formularios en los que preguntamos el nombre, apellidos, etc, etc pueden ser
de una sola lna de longitud, como los que hemos visto al principio. Pero y si queremos que
el visitante nos escriba un mensaje de varias lneas? En ese caso no nos sirve el campo de
texto anterior pues al pulsar el Enter o Intro no aparece una nueva lnea.
En estos casos definiremos un tipo distinto de objeto de formulario, los campos de texto de
varias lneas. Original el nombre, verdad? je je je.
En este caso en lugar de usar <input..... usarmos la palabra mgica <textarea... que significa
area de texto. Las caractersticas que le podemos indicar a un area de texto son, el nombre
del objeto con name; la anchura del area donde el usuario puede escribir,con cols; la altura
de ese area con rows y la palabra mgica wrap que veremos ms adelante.

Un ejemplo de area de texto de varias lneas sera este cdigo Html:


<textarea rows="10" cols="20" wrap="soft">Texto que aparece ya escrito de
antemano</textarea>
La palabra mgica wrap puede tomar solo tres valores de los que has de elegir uno. Presta
atencin porque quiz sea un poco complicado de entender (y de explicar... je je je) Los
valores que les puedes dar son:
- off: El texto escrito por el usuario lo recibes tal cul lo ha escrito, con los saltos de lnea
(lo que ocurre cuando presiona Intro o Enter) tal cul l los di. Si tu area de texto es ms
estrecha que su frase, la frase contina sin pasar a verse en la lnea de abajo. Lo pillas?
Sigue leyendo las otras opciones y lo vers ms claro.
- soft: En este caso si la frase que escribe el colega visitante es ms larga que el ancho de tu
area de texto, la frase continua en la lnea de debajo, aunque t recibirs el texto tal cul el
visitante pretenda escribirla, solamente con los saltos de lnea que l puls, no con los
saltos que aparentemente le marca el area de texto para que todas las frases se vean dentro
de la ventana.
- hard: Y como ltima opcin, tenemos "hard". Si escoges esta opcin, el visitante se
pondr a escribir frases ms largas que el ancho del textarea y estas frases se dividirn
conforme se alcance la anchura de la ventana, pero t recibirs el texto con los saltos de
lnea justo en esos margenes, aunque el visitante no haya pulsado el Intro o Enter en su
teclado para indicar una nueva lnea.
Era complicado verdad? je je. Quizs tengas que leerlo de nuevo para enterarte, no he
estado muy fino conla explicacin, je je je. Te recomiendo la opcin "soft" as que si no te
has enterado de mucho elije esa siempre y listo.

Campos Ocultos
Como hemos visto en CCTW, usando PHP podemos crear algunas variables en las que
almacenar algunos datos. En ocasiones nos interesa que junto con los datos del formulario
que rellena el usuario nos venga tambin algn dato extra que nos sea de inters.
Imagina por ejemplo que el visitante rellena el formulario y lo enva al servidor. Podramos
guardar la IP del usuario en una variable e indicar en el formulario que nos sea enviado el
valor de esa variable (la IP) junto con el resto de los datos. Con esto sabramos si se han
rellenado varios formularios desde la misma IP, no? Pero seguramente no queramos que el
visitante vea todo lo que intentamos captar.... habra de ser, invisible!
O imagina que el formulario es para insertar un mensaje en un foro. Un dato interesante y
necesario a guardar junto con el mensaje sera el nombre de usuario, no? Pero estos no son

datos que tenga que rellenar el visitante sino datos que podemos recopilar sin necesidad de
que el que rellena el formulario sepa nada, por eso se llaman campos ocultos.
En ejemplo de definicin de un campo oculto en un formulario sera el siguiente:
<input type="hidden" name="valorocultoarescatar" value="$variable">
Con hidden dentro de type indicamos que se trata de un objeto de formulario del tipo oculto
(el usuario no lo ve pero nos llega ese dato).
Por supuesto, como en este caso el usuario no escribe nada, el valor se lo tenemos que
indicar nosotros. En el caso del ejemplo de arriba tomar el valor que tenga la variable
$variable, que podra ser el nombre de usuario, la IP o cualquier otro dato interesante que
queramos.
Justo debajo de esta lnea te dejo algunos campos ocultos como ejemplo. Cmo? Que no los
ves? Pues claro! No te he dicho que son ocultos? ja ja ja ja. Ya los veremos junto con todo
lo dems en ejemplos prcticos ms tarde, oki?

Botn de Envo
Ya hemos visto todas las formas que hay de captar informacin a partir de un formulario,
pero de nada nos sirven esos datos si se quedan ah, pululando por la red. Necesitamos
rescatarlos y para ello hay que aadir al formulario unos botones de envio. Cuando el
usuario pulse en ellos toda la informacin se pondr en marcha.
Existen tres tipos de botn de envo y se definen indicando submit, image o button dentro
de las comillas del type en la lnea de cada input (ya empezamos a hablar como autnticos
Frikis! ja ja ja).
<input type="submit"....
<input type="image"....
<input type="button"...
El botn submit se define con las palabrs mgicas name en el que le colocaremos un
nombre para identificarlo y value donde escribiremos la accin que se llevar a cabo al
hacer clic sobre l. Un ejemplo sera este:
<input type="submit" value="Botn de envio estandar" name="Enviar la informacin al
servidor" />
El botn image es similar al anterior, pero en este caso no se muestra en el navegador un
botn como en el caso anterior, sino una imagen que bien pudiera ser un botn ms mono
dibujado por t. Est claro que en este caso se usaran las palabras mgicas del submit ms
algo (la ruta por ejemplo) que indique dnde est la imagen que vamos a usar como botn.

<input type="image" value="Botn de envio personalizado" name="Enviar la informacin


al servidor" SRC="/objetos/imagendeboton.gif" />
Dentro de las comillas de src has de indicar la ruta del archivo de la imagen que quieres
usar como botn.
El tecero de estos botones es el button. Este otro es similar al anterior, pero en este caso no
hay ninguna cosa predeterminada que se vaya a hacer cuando se pulsa sobre l. Tenemos
que indicar nosotros qu debe ocurrir cuando ese botn sea pulsado. Esto se indica con
lneas de JavaScript por ejemplo, as que por el momento no lo usaremos, que de eso no
tenemos (an) mucha idea. Nos quedamos con los dos anteriores, oki? Que son facilitos y
suficientes para lo que queremos por el momento.

Envo de la informacin de un formulario

Ahora s que tenemos el formulario completo. Bueno, tenemos lo que se ve del formulario,
pero nos falta ver qu hacemos con la informacin recopilada y es aqu donde entra a jugar
el lenguaje PHP que estamos aprendiendo.
Con los datos que ha rellenado nuestro amigo el visitante en el formulario podemos hacer
tres cosas. La primera y ms sencilla es no hacer nada, cmo no, je je, la segunda es
mandarla a la pgina siguiente de nuestra web para que juegue con esos datos y la tercera es
enviarlos a una base de datos donde quedarn guardados para su uso en el futuro.
En las siguientes pginas vamos a ver los dos ltimos modos y te dejo a t el primer modo
para que lo pienses, a ver si eres capaz ;=)
Hey, te das cuenta de cunto sabes ya? No es genial? je je je.

Formulario de ejemplo

Recuerdas la base de datos que creamos pginas atrs? Vamos a crear un formulario en el
que pediremos al visitante los datos de aquella tabla USUARIOS que habamos creado en
el ejemplo aqul. Los campos que tenamos en esa tabla eran NOMBRE, EMAIL, URL y
ACTIVO. Tenamos un campo ms llamado ESTADO. Obviamente este no ser un campo
a relenar por el usuario, as que podemos establecerlo nosotros con el valor Activo y ya ms
tarde si se porta mal lo ponemos como Inactivo. Este sera una buena ocasin para aplicar
lo del campo oculto, verdad? Aadiremos este campo como oculto en el formulario con el
valor de Activo entonces. Sin ms rollo vamos a ver cmo pasamos todo eso a cdigo Html.
Damos por hecho que ya tienes creada la base de datos del ejemplo que dejamos atrs, con
la tabla aquella llamada USUARIOS con los campos NOMBRE, EMAIL, URL y
ESTADO.
Para empezar escribimos las etiquetas de inicio y fin del formulario:
<form method="post" action="mostrardatosenpagina.php">
</form>
Ahora colocamos dentro los cdigos Html correspondientes a cada uno de los campos. Para
NOMBRE por ejemplo, que es una cadena de texto de una sola lnea, pondremos estas
lneas:
<input type="text" name="Nombre" value="Escribe tu nombre" size=30 maxlength=50 />
Si recuerdas, cuando creamos hace unas cuantas pginas la tabla USUARIOS indicabamos
en el PhpMyAdmin que el campo Nombre deba tener como mximo 50 carcteres. Lo
pusimos en esta tabla, te acuerdas?

As que en el cdigo del formulario pondremos un maxlenght de 50. De este modo no nos
dejar escribir ms que esos carcteres. Total, tampoco los tomara la base de datos.
El valor de SIZE en cambio no varia ni recorta ese valor por largo que sea, solo indica la
anchura del recuadro del formulario, as que lo dejamos en por ejemplo 30.
<form method="post" action="mostrardatosenpagina.php">
<input type="text" name="Nombre" value="Escribe tu nombre" size=30 maxlength=50 />
</form>

Pasamos a los siguientes campos, EMAIL y URL. Son iguales que el campo NOMBRE
anterior, por lo que modificamos solamente el valor VALUE para indicar lo que queremos
que aparezca junto con el formulario en cada hueco. Quedara as:
<form method="post" action="mostrardatosenpagina.php">
<input type="text" name="NOMBRE" value="Escribe tu nombre" size=30
maxlength=50 />
<input type="text" name="EMAIL" value="tuemail@correcto" size=30 maxlength=50 />
<input type="text" name="URL" value="http://www.tudirecciondepagina.web" size=30
maxlength=50 />
</form>
Nos falta solo el campo oculto en cuyo cdigo ponemos ya que tenga el valor ACTIVO,
quedando as el cdigo hasta ahora:
<form method="POST" ACTION="mostrardatosenpagina.php">
<input type="text" name="NOMBRE" value="Escribe tu nombre" size=30
maxlength=50 />
<input type="text" name="EMAIL" value="tuemail@correcto" size=30 maxlength=50 />
<input type="text" name="URL" value="http://www.tudirecciondepagina.web" size=30
maxlength=50 />
<input type="hidden" name="ESTADO" value="Activo" />
</form>
El aspecto del formulario sera este:
Escribe tu nombre

tuemail@correcto

http://w w w .tudirecciondepagin

Y si queremos que aparezcan esos recuadros uno bajo el otro podremos una etiqueta <br />
que indica salto de lnea, al final de cada lnea de INPUT, quedando as:
Escribe tu nombre
tuemail@correcto
http://w w w .tudirecciondepagin

Hey! Le faltan los botones an! je je. Veamos, con las lneas de cdigo del botn de envo
quedara as:
<form method="POST" action="mostrardatosenpagina.php">
<input type="TEXT" name="NOMBRE" value="Escribe tu nombre" size=30
maxlength=50><br />
<input type="TEXT" name="EMAIL" value="tuemail@correcto" size=30
maxlength=50><br />
<input type="TEXT" name="URL" value="http://www.tudirecciondepagina.web" size=30
maxlength=50><br />

<input type="HIDDEN" name="ESTADO" value="Activo">


<input type="SUBMIT" value="Botn de envio estandar" name="Enviar la informacin
al servidor"><br />
</form>
Y el aspecto sera este:
Escribe tu nombre
tuemail@correcto
http://w w w .tudirecciondepagin

Bonito verdad? Je je je. Ya sabes que con imaginacin, gusto y..... y la hoja de estilos!
puedes dar un aspecto mucho mejor al formulario.

Uso de la informacin del formulario en


otras pginas de la web
Qu hace realmente este formulario cuando se pulsa el botn de envo? Te lo cuento paso a
paso, oki? Tras pulsar el botn, los tres valores o mejor dicho, los cuatro valores (tambin
tenemos el valor oculto!) se quedan guardados en una variable del tipo cadena.
Un tipo cadena significa que esos cuatro valores se quedan guardados "en cadena", es decir,
uno detrs de otro. La variable que los guarda mantiene esos datos as:
NOMBRE, Escribe tu nombre,
EMAIL, tuemail@correcto,
URL, http://www.tudirecciondepagina.web,
ESTADO, Activo
Como ves, estn en cadena. Se queda guardado el nombre (NAME) del botn junto con el
valor que se haya escrito en el formulario. Vers tambin como se ha guardado el campo
oculto, con su nombre ESTADO y el valor que hemos puesto predeterminado en el cdigo
del formulario, Activo.
Para recuperar esa informacin o mejor, para imprimirla en la ventana del navegador
tenemos que hacer un echo, como siempre, y llamar a la variable que contiene esos datos
con la siguiente lnea de cdigo Php:
<?php
echo $_POST[NAME];
?>

donde en lugar de NAME tenemos que colocar el nombre de ese campo, como por ejemplo,
NOMBRE, ESTADO, URL o EMAIL. Por ejemplo, para el cdigo Php de arriba se
mostrara en la ventana del navegador esto:
Francisco Gonzalez
suponiendo claro que se escribi ese nombre en el formulario antes de pulsar el boton de
envo.
Si en lugar de haber puesto el valor POST en la primera lnea del cdigo del formulario,
hubieramos escrito GET (te dije que podiamos usar cualquiera de los dos, recuerdas?) los
datos del formulario se habran guardado no en la variable POST sino en la variable GET,
por lo que para imprimir los datos del formulario tendramos que haber escrito este otro
cdigo Php:
<?php
echo $_GET[NAME];
?>
Adems de eso, el usuario vera en la direccin de la pgina de destino no solo la
informacin que escribi, sino tambin los valores de campos ocultos y eso a veces no es
deseable, no? El formulario siguiente es igual que el anterior pero con GET en lugar de
POST. Pulsa el botn de envo y vers esa informacin al final de la direccin que muestra
tu navegador.
Escribe tu nombre
tuemail@correcto
http://w w w .tudirecciondepagin

Y como te deca al principio de estas lecciones, como los navegadores normalmente no son
capaces de leer una direccin o URL demasiado larga, si los datos son muchos o muy
largos el navegador no podr leer los ultimos datos y perderas informacin del formulario.
As que, por el momento seguiremos usando POST en lugar de GET y tan contentos.
Al pulsar sobre los botones de envo de estos ejemplos anteriores, se te dirije a una pagina
escrita en Php cuyo nico contenido es este:
<?php
echo "Hey, que esto an no est terminado!" ;
echo $_POST[ESTADO] ;
?>
De forma que se ve en el navegador el mensaje "Hey, que esto an no est terminado!"
seguido de lo que vale la variable ESTADO, es decir, Activo.

Esta pgina se llama mostrardatosenpagina.php y es la que aparece en la primera lnea


del cdigo Php de estos formularios de ejemplo. Osea, que la pgina que pongamos all ser
la que reciba los datos del formulario. Que hacer con esos datos ya es otro cantar, verdad?
En este ejemplo lo que hemos hecho con los datos del formulario ha sido simplemente
mostrar en pantalla el valor del campo oculto ESTADO. Ms adelante en lugar de esa
tontera lo que aprenderemos es a guardar todos ellos en una base de datos.

Guardar la informacin de formulario en


una base de datos
Antes vimos cmo aprovechar la informacin del formulario para imprimir alguno de sus
datos en una pgina web. Ahora lo que vamos a aprender es a que tras pulsar el botn de
envo, todos esos datos queden guardados en una base de datos que tendremos ya creada y
preparada para recibir esa informacin.

El formulario va a ser el mismo que antes, sin cambiarle nada. La novedad en este caso ser
el indicar al servidor que guarde los valores de la variable POST en nuestra base de datos
de ejemplo, la que vimos al principio.
Bueno s cambia una cosilla, el nombre del archivo php de la primera lnea del cdigo del
formulario. Antes era la pgina mostrardatosenpagina.php y contena instrucciones para
mostrar una frase y el valor del campo oculto mientras que ahora ser otro archivo distinto
llamado por ejemplo insertardatosentabla.php y que ser el que vamos a crear ahora y que
contiene las instrucciones para que el servidor guarde los datos del formulario recibidos a
travs del POST, en la tabla USUARIOS de nuestra querida base de datos.
Y a estas alturas siento decirte que.... ya no eres normal. Ahora empiezas a ser todo un
friki programador, de esos que no hay quien los entienda, ja ja ja ja. Es broma!! Solo
t te libras! ja ja ja ja. Hey, qu tal un paseito (no virtual, que te veo venir!) para
mover el esqueleto antes de continuar?

Jugando con los Datos


Para poder jugar con la informacin de una base de datos es imprescindible primero
conectar con ella. Con jugar con la informacin me refiero a mostrar, insertar, crear,
modificar o eliminar datos. Nosotros tenemos ya preparados los datos en la variable post

que vimos, pero antes de insertar esos datos en la base de datos necesitamos conectar con
ella.
Los datos de conexin los tenemos ya y si me has hecho caso, los tendrs a mano escritos
en algn papelito por tu mesa. Si no es as, te los recuerdo:
Nombre de la base de datos: cartago_basedepruebas
Nombre de usuario de la base de datos: cartago_pepe
Contrasea: noteladigo
Host: localhost
En tu caso, en lugar de cartago tendrs que poner tu nombre de usuario del Cpanel tal y
como te dije, adems de tu propia contrasea, claro.
Ls lneas de cdigo Php que has de poner para abrir la conexin con esa base de datos son
estas (en adelante coloreo de gris aquellas lneas que no son ms que comentarios
aclaratorios, oki? Para distinguirlo del resto de cdigo php):
<?php
// Rellena los espacios ente comillas de abajo con los datos que te da
// el servidor al activar la base de datos.
// Este dato de abajo suele ser localhost casi siempre:
$server="localhost";
// Aqui abajo escribe el nombre de la base de datos.
// Si tu servidor tiene cpanel normalmente va primero tu nombre de username,
// por ejemplo: username_nombredelabasededatos
$database = "cartago_basedepruebas";
// Aqui abajo el nombre de username de la base de datos para acceder a ella.
$db_user = "cartago_pepito";
// Y ahora la contrasea:
$db_pass = "esunsecreto";
?>
Las lneas de cdigo realmente importantes son solo las que no llevan el smbolo // delante,
pues esas son simples comentarios que si quieres puedes mantener (te lo recomiendo) para
recordar para que sirve cada una de ellas. Realmente son solo cuatro las lineas importantes
y en ellas se guardan en variables los datos de conexin.
Podras pensar que es un poco arriesgado dejar guardados los datos de la base de datos, con
la contrasea y todo, en un archivo colgado en internet, pero como es cdigo Php no hay
riesgo alguno. Por qu?
Si recuerdas lo que te comentaba al principio de hablarte del Php, es un cdigo que solo lee
el servidor de forma que, como no tenemos ningn echo en estas lneas, el resultado de todo

este cdigo en un navegador ser nada, cero, ninguno. Esos datos son leidos por el servidor,
pero es imposible que cualquier usuario pueda leerlos, as que tranquilo.
Para no tener que escribir esas lneas cada vez que queramos abrir la conexin a la base de
datos lo que haremos es guardar todo ese cdigo en un archivo que llamaremos config.php
y al que llamaremos cada vez que queramos abrir la base de datos (ya te digo cmo).
Abre por tanto tu block de notas, escribe todo ese cdigo dentro, cambia los valores por los
tuyos (la contrasea y la palabra cartago por tu nombre de usuario en el Cpanel) y guarda el
archivo con la extensin .php en la raiz de la carpeta en la que ests haciendo este ejemplo,
vale? Ahora crea otro archivo ms, tambin con extensin .php llamado
insertardatosentabla.php
Como ese archivo es Php puedes ya escribir sus etiquetas de apertura y cierre. Ya dijimos
que las pginas Html empezaban con la etiqueta <html> y terminaban con </html> y que en
cambio los archivos Php empezaban con <?php y terminaban con ?> as que escribe eso
dentro y guarda los cambios.
En este archivo llamado insertardatosentabla.php escribiremos el cdigo Php necesario
para incluir los datos guardados en la variable post dentro de la base de datos de ejemplo.
Como adivinars, lo primero es conectar con la base de datos.
Para ello deberamos escribir el cdigo Php que habamos guardado en el archivo
config.php pero como lo tenemos en aqul archivo, basta con indicar que aada todo su
contenido en esta otra pgina. Esto se hace muy rapidamente usando la palabra mgica
include tal y como te muestro abajo:
<?php include("config.php") ; ?>
Con esto el servidor leer el contenido de config.php cuando vea la lnea del include y de
este modo nos ahorramos escribir ese cdigo cada dos por tres. Una vez que lo ha leido ya
conoce las claves para la conexin. Ahora le indicamos que conecte con estas otras lneas:
<?php
// leer datos de usuario y contrasea de la base de datos
include("config.php") ;
// Conexin con el servidor
mysql_connect($server, $db_user, $db_pass) or die ("error1".mysql_error());
// Seleccin de Base de Datos
mysql_select_db($database) or die ("error2".mysql_error());
?>

Los comentarios (las he diferenciado con otro tono de color arriba), es decir, las lneas que
empiezan por // hablan por si solas, no? La primera nueva lnea conecta con el servidor y la
segunda con la base de datos.
Si por algn motivo falla la conexin con el servidor, se mostrar en el navegador el
mensaje "error1" y se deber seguramente a haber puesto mal el nombre del servidor, de
usuario o la contrasea en el archivo config.php
Si lo que falla es la seleccin de la base de datos, aparecer en la pantalla "error2" y ser
seguramente por haber escrito mal el nombre de la base de datos en el archivo config.php
Si no aparece ninguno de esos mensajes ser que todo ha ido como esperabamos, aunque no
lo notaremos por el momento. Lo importante ser saber que la conexin est hecha!!!
Solo nos queda indicar al servidor mediante el cdigo Php que inserte los datos guardados
en POST en la tabla USUARIOS. Esto se hace con esta sencilla lnea de cdigo:
mysql_query (" INSERT INTO base.tabla (nombre de los campos) values (datos
correspondientes) ");
que en nuestro caso tomara la forma siguiente:
mysql_query ("INSERT INTO `cartago_basedepruebas`.`USUARIOS` (`NOMBRE`,
`EMAIL`, `URL`, `ESTADO`) VALUES ('$_POST[NOMBRE]', '$_POST[EMAIL]',
'$_POST[URL]', '$_POST[ESTADO]') ");
En esa lnea no hay nada raro, no? Se pone el nombre de tu base de datos, un punto, el
nombre de la tabla y luego dentro del primer parntesis el nombre de los campos y dentro
del segundo parntesis las palabras mgicas $_POST[nombre de campo], una para cada
campo que rescatamos del formulario.
Pues con eso queda guardada la informacin del formulario en nuesta base de datos. Qu
tal? Te ha parecido muy complicado? Imagino que no. Quizs muy diferente a trabajar con
Html, no? Pero te aseguro que hace tres das no sabia nada de Php, bases de datos ni de
formularios y mira, aqu estoy explicndote cmo se usan, je je. Es cierto, tras unos cuantos
ejemplos y testeos se me ha quedado bien grabado en la cabeza, no es muy dificil.
An se pueden hacer miles de cosas con los valores guardados en la base de datos. Solo
necesitamos aprender un poco ms y podremos crear nuestros propios foros, sistemas de
mensajes, de noticias, hacer ms dinmicas nuestras webs dotndolas de registro de
usuarios, etc, etc, etc. Pero sigamos poco a poco, je je je.
Escribe tu nombre
tuemail@correcto
http://w w w .tudirecciondepagin

http://www.comocreartuweb.com/curso-php-y-msql.html

S-ar putea să vă placă și