You are on page 1of 43

Manual bsico de PHP

Concepto de PHP
Segn diversas fuentes como la Wikipedia y la documentacin Oficial podemos resumirlo en lo siguiente: PHP es un lenguaje de programacin interpretado, diseado originalmente para la creacin de pginas web dinmicas. Es usado principalmente en interpretacin del lado del servidor (server-side scripting) pero actualmente puede ser utilizado desde una interfaz de lnea de comandos o en la creacin de otros tipos de programas incluyendo aplicaciones con interfaz grfica usando las bibliotecas Qt o GTK+.. Es un acrnimo de "PHP: Hypertext Preprocessor", la mayor parte de su sintaxis es similar a C, Java y Perl, y es fcil de aprender. La meta de este lenguaje es permitir escribir a los creadores de pginas web, pginas dinmicas de una manera rpida y fcil, aunque se pueda hacer mucho ms con PHP. Fue creado originalmente por Rasmus Lerdorf en 1994; sin embargo la implementacin principal de PHP es producida ahora por The PHP Group y sirve como el estndar de facto para PHP al no haber una especificacin formal.

Qu podemos hacer con PHP y para qu nos sirve


Con PHP podemos realizar programas, aplicaciones web, servicios del lado del servidor y un sin fin de opciones que podemos ver en casi todos los sitios que visitamos a diario pues este lenguaje es uno de los ms populares en la actualidad. Estos son algunos sitios o servicios que estn realizados en su mayora con PHP para que puedas ver el potencial del lenguaje.

Wordpress.org El sistema ms utilizado para crear blogs, que actualmente alcanza el ttulo de CMS con cientos de poderosas opciones que permiten personalizarlo. Wordpress.com Uno de los servicios favoritos para iniciar tu propio blog sin necesidad de un servicio de hosting. La Wikipedia funciona gracias al software llamado mediawiki que est escrito con PHP. vBulletin - Es uno de los softwares ms robustos para tener un sistema de foros en tu servidor, tambin existe phpbb quien fuera uno de los sistemas ms populares hace algunos aos tambin fue creado en PHP y debido a eso su nombre. Se sabe que Facebook, una de las redes sociales ms grandes fue programado en su mayora utilizando PHP, adems poseen una API para crear aplicaciones que interactuen con su sitio las cuales pueden ser creadas con el mismo lenguaje.

Como ves, la robustez de PHP ha sido probada en un sin fin de servicios y distintos sitios que visitamos a diario, lo cual espero sea una motivacin para que te animes a aprender este lenguaje.

Adems, PHP no devuelve solamente cdigo HTML al navegador, entre muchas de sus funciones tambin puede crear imgenes, generar miniaturas de las mismas, crear archivos PDF en base a contenido definido o crear archivos de tipo Flash en el instante y bajo demanda, entre muchas cosas ms, todo depende del uso adecuado de libreras y el conocimiento del lenguaje. En lo que se refiere a datos almacenados, PHP soporta una gran cantidad de bases de datos para interactuar con la informacin, son ms de veinte distintas a las que podemos ingresar datos o extraer, entre las que se encuentran:

Oracle Informix MySQL MS SQL Server Sybase y muchas otras.

Manual de PHP: Requisitos para iniciar a programar con PHP


Como ya dijimos en un inicio, PHP es un lenguaje que se ejecuta del lado del servidor, por ello necesitamos tener ciertas herramientas que nos ayudarn a poder ver los resultados de nuestros primeros programas. PHP fue diseado para ejecutarse junto a Apache que es un servidor web para sistemas operativos Linux, pero en la actualidad lo podemos instalar tambin en Windows y Mac OS, as como otras alternativas de servidor web que han ido apareciendo. Para aprender a programar no necesitas gastar un solo centavo, todo lo puedes hacer desde la computadora de tu casa para empezar utilizaremos aplicaciones que nos ayudarn a tener instalado el servidor de archivos, el intrprete del lenguaje y una base de datos, todo de forma automtica (aunque tambin se podra instalar todo por separado).

Windows

XAMPP es uno de los ms utilizados y confiables o La ruta para guardar tus archivos debera ser C:/xampp/htdocs o en su defecto la ruta donde este instalado XAMPP Tambin puedes usar WAMP, que es para Windows solamente. o La ruta para guardar tus archivos debera ser C:/wamp/www o en su defecto la ruta donde este instalado WAMP Tambin es posible instalar el servidor web y PHP por separado.

Mac OS

Todo viene instalado de base a excepcin de MySQL pero requiere de algn tiempo para configurarlo, por eso te recomiendo que instales MAMP en su versin gratuita. o La ruta para guardar tus archivos debera ser /Macintosh HD/Applications/MAMP/htdocs

Linux

XAMPP tambin puede instalarse en sistemas como Ubuntu. o La ruta para guardar tus archivos debera ser /opt/lampp/htdocs/ o en su defecto la ruta donde este instalado XAMPP aunque lo mejor es hacer un symlink a alguna carpeta que pertenezca al usuario ya que por defecto /opt/lampp/htdocs/ pertenece a root Tambin es posible instalar un servidor web (lighttpd, apache son algunos ejemplos), y las libreras de php por separado, as como el mysql y otras utilidades. El directorio por defecto para guardar los archivos es /var/www/, que se puede cambiar en la configuracin del servidor web. En algunas distribuciones Linux viene instalado por defecto.

Luego de instalar cualquiera de las alternativas toma en cuenta la ruta en donde debes crear tus propios archivos para que all almacenes todos los ejemplos que vamos a realizar. Una breve explicacin de lo que hace cada elemento que se ha instalado en nuestra computadora

El servidor Apache entrega los archivos para que puedan ser mostrados en el navegador. El interprete o mdulo de apache lee el cdigo de los archivos .php y lo ejecuta en base al contenido. En el tiempo de ejecucin puede realizar una consulta a una base de datos como Mysql, para ingresar o leer informacin. Y entonces mostrarse el resultado en el navegador.

Editores de Cdigo
Para escribir el cdigo de nuestros programas podemos utilizar cualquier aplicacin como el Block de Notas de Windows, es decir no necesitamos ninguna herramienta sofisticada, sin embargo algunas aplicaciones nos ayudarn a visualizar mejor lo que estamos programando, as que recomendamos algunas que puedes bajar y probar, cualquiera que elijas estar bien.

Notepad++ - Windows (Gratuito) PSPad - Windows (Gratuito) gedit - Linux (Ya incluido en gnome) Smultron - Mac OS (Gratuito)

Manual de PHP: Sintaxis de programacin


La sintaxis se refiere a las formas y estructura que debe tener un lenguaje para su correcta interpertacin. Est formado por un conjunto de reglas bsicas que debemos tener en cuenta a la hora de escribirlo. Este concepto se aplica a situaciones de la vida cotidiana, como al escribir una oracin o una frase, o en el simple hecho de hablar. Debemos expresar lo que queremos con una sintaxis adecuada para que terceras personas puedan entender de manera sencilla y correcta lo que queremos decir. En programacin, igual hay pautas que debemos tomar muy en cuenta para que nuestros programas puedan ser entendidos e interpretados por el procesador, en este caso el servidor PHP. Si no los escribimos correctamente, el servidor no sabr que es lo que tine que hacer y en muchos casos generar errores que imposibilitan la ejecucin de los scripts.

Delimitacin del cdigo PHP


El ttulo de esta seccin puede resultar algo difcil de entender. Empecemos por recordar que al iniciar la ejecucin de un script, el servidor PHP busca en nuestro cdigo instrucciones PHP que deban ser interpretadas. Pero esto no se hace de manera arbritaria, sino que debemos indicarle al servidor PHP que empiece a leer y ejecutar el cdigo cuando sea necesario. As como en Javascript usamos los tags <script language="javascript"> y </script> para delimitar el cdigo javascript que queremos incluir, en PHP hay tags que le van a decir al intrprete PHP que el cdigo que est entre ellos es cdigo PHP. Los ms conocidos son <?php para iniciar el cdigo, y ?> para cerrarlo. Sin embargo, son 4 las opciones que tenemos para hacerlo.
* * * * <?php ... ?> <script language="php"> ... </script> <? ... ?> <% ... %>

De ellos, los dos primeros siempre estarn disponibles, y los dos ltimos deben ser habilitados en la configuracin de PHP para que funcionen correctamente. Es por eso que se recomienda siempre usar el primer conjunto de tags: <?php y ?> para lograr la mayor compatibilidad de nuestros scripts en todos los servidores. En PHP6 se eliminar el soporte al ltimo de ellos <% y %>. Todo lo que est encerrado entre esos smbolos ser reconocido por el servidor como cdigo PHP, y empezar a leerlo e interpretarlo. El siguiente ejemplo es para mostrar slo la correcta inclusin de cdigo PHP en un script: 5

<?php echo "Hola mundo"; ?>

El tag de cierre ?> es opcional, y se usa solamente cuando queremos dejar de interpretar la salida en PHP, por lo general se recomienda no usarlo si el archivo es de puro cdigo PHP. Despus veremos por qu.

Separacin de instrucciones
Como dijimos, un programa o script en PHP es un conjunto de instrucciones que deben ser ledas por el servidor para generar un resultado. Si analizamos este concepto, podremos deducir que no se trata de una sla intruccin, sino mas bien de una serie de ellas que en conjunto realizarn determinadas tareas. Para separar las diferentes instrucciones una de otra usamos, al igual que en Pascal, el punto y coma (;). Usaremos este punto para decir que PHP es un lenguaje "ciego" a los espacios en blanco y saltos de lnea antes o despus de una intruccin. Gracias a esto podemos insertar tabulaciones y saltos de lnea en nuestro cdigo, para as lograr una mejor organizacin del mismo, en base a "niveles". Como veremos a lo largo de este manual, esta aclaracin ayudar a lograr un mejor cdigo, visualmente hablando, aunque el resultado ser igual que si no aadisemos nada.
<?php $variable = "Esta es una variable PHP"; echo $variable; ?> echo "Dos instrucciones..."; echo "...en la misma lnea";

Es obligatorio separar las diferentes instrucciones, pues si no lo hacemos obtendremos un error por parte del servidor. Aunque se ver despus, adelantaremos que una palabra precedida del signo de dolar ($) indica que esa palabra es en realidad una variable en PHP.

Desplegar la informacin
Para desplegar o imprimir informacin en la pantalla utilizaremos algunas instrucciones como echo o print
echo "Texto impreso con echo"; print "Texto impreso con print";

Comentarios en nuestro cdigo


Un comentario significa un texto que slo el programador o aquel que vea el cdigo puede leerlo, pero no interfiere en absoluto en la ejecucin del script. En otras palabras, resulta invisible para el intrprete PHP. Es til para indicar qu hace cada espacio de programacin dentro del cdigo, lo cual es una muy buena prctica para ayudar a 6

identificar y separar las diferentes secciones del script en base a su funcin; o incluso es posible comentar tambin el cdigo PHP para que ste no sea interpretado, con la ventaja de que est ah disponible para cuando sea necesario. Cuando queremos hacer un comentario o evitar que se ejecute un cdigo que hayamos programado debemos utilizar los smbolos // #, y si queremos comentar todo un bloque con varias lneas debemos encerrarlo entre /* y */. ejemplos:
// Este es un comentario de una sla lnea echo "Un texto"; /* Este programa fue creado por Oscar Mota y su funcin es mostrar la utilidad de los comentarios en un script

*/ echo "Ms texto";

// O podemos comentar tambin una porcin de cdigo # echo "Esta instruccin no se ejecuta pues est comentada";

Como habrs notado, un comentario no es una intruccin propiamente dicha, por lo tanto, no requiere terminar con el deimitador ; No hay un consenso sobre cul de esas tres formas deberamos usar para comentar en el script. El criterio del programador juega un papel importante en ello, pues al final, es el nico que podr leer los comentarios en el script. Personalmente, recomiendo usar // para escribir comentarios textuales acerca de la funcin de alguna lnea de cdigo, y # dejarlo para comentar lneas de cdigo. A estas alturas, de ms est decir que un comentario puede ir inmediatamente despus de una intruccin (en la misma lnea), pues como dijimos PHP es ciego a los saltos de lnea. Sin embargo, como excepcin a esta regla, una vez que iniciamos un comentario lineal (con // o #) todo lo que est despus de l en la misma lnea ser ignorado por el servidor:
echo "Este texto s se imprime"; // Un comentario acerca de sta lnea // Otro comentario. echo "Este texto no se imprime pues forma parte del comentario";

Manual de PHP: Nuestro primer programa


Vamos a la accin, a realizar nuestro primer programa poniendo en prctica lo aprendido hasta ahora. Recuerda que una de las caractersticas del lenguaje PHP es que puede ser intercalado con cdigo HTML; simplemente debemos abrir y cerrar el intrprete usando los tags de apertura <?php y cierre ?> para indicar qu bloques de cdigo deben ser ledos como cdigo PHP. Por lo tanto, lo que haremos primero es crear la base de un archivo HTML.
<html> <body>

</body> </html>

Guarda este archivo con el nombre primer_script.php en la ruta que mencionamos en los requisitos para aprender PHP , y dirige tu navegador a la siguiente direccin que por el momento ser solo una pgina en blanco
http://localhost/primer_script.php

Ahora que tienes la plantilla bsica en HTML para tu primer programa, agrega el cdigo PHP. Fjate adems que en el ejemplo se usan comentarios para indicar que hace cada lnea en tu primer script.
<html> <body> <?php // Iniciamos el intrprete de PHP usando <?php echo "Hola, esto es una prueba"; // Este es mi primer programa en php /* La funcin anterior debera mostrar en el navegador, el texto que est entre comillas. Adems, hemos usado espacios al inicio de las lneas para as diferenciar claramente el cdigo PHP */ ?> </body> </html>

Guarda el archivo y recarga el navegador, deberas poder ver el mensaje "Hola, esto es una prueba" en la pantalla; si as es, significa que ya has creado tu primer programa en PHP. Si no te ha salido nada o ha mostrado algn error verifica que el cdigo de tu archivo sea idntico al del ejemplo, y revisa la ruta en donde guardaste el archivo. Como puedes ver, cada vez que queramos imprimir un texto en pantalla tendremos que usar la instruccin echo seguida del texto que queremos mostrar, encerrado entre comillas simples o comillas dobles. Adems, que no se te olvide agregar el ; al final para dejar claro al intrprete PHP que la instruccin echo ya termin, si no haces eso obtendras un error al colocar la siguiente instruccin.

Manual de PHP: Variables

Qu son las variables?


Las variables, como son conocidas, no son ms que almacenes de informacin. stas tienen por finalidad guardar informacin que luego utilizars o que te servir para realizar una operacin determinada. Como su nombre lo indica, su contenido es variable; es decir, puedes modificar, crear o destruir variables todo el tiempo a lo largo del script. 8

Por ejemplo podemos hacer un programa conversor de monedas, entonces en una variable llamada $tipodecambio podemos grabar el valor por el que debe ser multiplicada la otra moneda.
$tipodecambio = 7.25;

Si te fijas en este ejemplo, notars que una variable es en realidad una palabra precedida del signo de dlar ($). Aunque suene obvio, hay que indicar que las variables dentro de nuestro script deben tener nombres distintos. Un nombre de variable vlido ser aquel que empiece por un caracter alfabtico [a-z] o de subrayado [_], seguido de caracteres alfanumricos [a-z y 0-9] y de subrayado [_]. En otras palabras, una variable NO puede empezar con caracteres numricos, ni puede contener caracteres especiales [signos de puntuacin, letras especiales como , acentos, etc.). Slo letras, nmeros y caracteres de subrayado (_). Adems, es importante saber que el nombre de variable es case sensitive, osea sensible a maysculas y minsculas; por lo tanto, no es lo mismo $variable que $Variable.

Creacin y modificacin de Variables


Como has visto en el ejemplo anterior, crear variables es muy sencillo. No es necesario declararlas antes de usarlas como se hace en otros lenguajes pues podemos asignarles valores desde un inicio. Basta con escribir la variable, seguida del signo igual (=), y luego su valor. Para modificar su valor hay que repetir esta sencilla operacin, asignando el nuevo valor a la variable.
//Creamos la variable $mi_variable = "Valor inicial de mi variable"; // La imprimimos echo $mi_variable; // Modificamos su valor $mi_variable = "Nuevo valor de mi variable"; // La imprimimos nuevamente para demostrar que su valor es ahora distinto echo $mi_variable;

Deliberadamente, hasta ahora, hemos usado valores de texto (o de tipo string) para casi todos los ejemplos. Pero, como veremos en el siguiente punto, hay muchos tipos de variables, cada uno con una finalidad especfica.

Tipos de Variables
9

El tipo de variable est dado por el tipo de datos que sta contiene. Entonces, al hablar de tipos de variables en realidad estamos hablando de tipos de datos que PHP maneja. Hay distintos tipos de variables y cada una tiene un uso especfico:
$tipodecambio = 7.25; $nombre = 'Oscar Mota'; $pagado = true;

Si ya tienes algunos conceptos de programacin notars cmo en el segundo ejemplo hemos declarado una variable de tipo string y lo nico que hemos hecho es colocarle comillas al valor, en los otros casos no lo necesita, como el primer ejemplo que es una variable de tipo double o float (numrica) y en el ltimo ejemplo que sera una de tipo boolean (falso y verdadero). En otra seccin revisaremos los tipos de datos ms usados en PHP.

Variables y Cadenas de Texto


Una importante caracterstica de PHP es que uno puede expandir variables dentro de las cadenas de texto si stas estn rodeadas por comillas dobles ("). Por ejemplo veamos este cdigo:
$nombre = 'Oscar Mota'; $saludo = "Hola $nombre como estas?"; echo $saludo; // Esto imprime Hola Oscar Mota como estas?

Esta caracteristica importante de PHP es luego el dolor de cabeza de muchos programadores, ya que luego al querer imprimir cadenas HTML con comillas se crean errores. Lo importante es decidir qu comillas se van a utilizar; si necesitas muchas comillas dobles, crea tu cadena con comillas simples, por ejemplo, imprimir un atributo HTML:
$div = '<a href="http://www.forosdelweb.com/" title="Foros del Web" id="link_fdw" style="link_azul">Link a Foros del Web</a>';

Otra caracteristica de PHP es el operador de unin de cadenas (.). Con este operador podemos unir dos o ms cadenas de texto, o incluso cadenas con variable, de manera que formen parte de la misma serie de datos.
$cadena1 = "Hola mundo"; $cadena2 = ", este es "; $texto = $cadena1 . "$cadena2 mi primer script"; echo $texto; // Imprime: Hola mundo, este es mi primer script

Como se aprecia en el ltimo ejemplo, el usar comillas dobles hace que las variables en el texto sean reemplazadas por sus valores correspondientes, no as con las comillas simples.

mbito de las Variables


10

Hay dos tipos de mbitos en los que se puede declarar las variables: local y global. La diferencia es que las variables locales solo pueden ser usadas dentro de la funcin en donde fueron definidas, mientras que las globales las podemos utilizar en cualquier parte de nuestro script y desde diferentes funciones. Por norma general cada variable es tomada como local a menos que se declare de diferente forma para que sea global, ejemplo:
global $nombre_del_sitio = "Foros del Web";

Veremos la aplicacin de este concepto cuando veamos el uso de funciones en PHP.

Ejemplos en el uso de variables


Tomando como base el punto anterior podemos hacerle modificaciones a nuestro primer programa para que luzca de la siguiente forma
<html> <body> <?php // Este es mi segundo programa en php $texto = "Hola, soy una variable con un texto"; echo $texto; ?> </body> </html>

Puedes grabarlo con el nombre que desees y vers que funciona de igual forma que el primer ejemplo, pero si nos fijamos en el cdigo vemos que hemos almacenado un valor en la variable $texto y que para desplegarlo hemos utilizado de nuevo el comando echo, pero ahora sin las comillas pues que lo que queremos es que imprima el contenido de la variable. Tambin podemos imprimir en pantalla el resultado de una variable ms algn texto especfico en una misma lnea, por ejemplo:
<body> <html> <?php $texto = "Hola, soy una variable con un texto"; echo "El programa quiere saludarte: " . $texto; ?> </body> </html>

11

Manual de PHP: Tipos de Datos


PHP soporta diferentes tipos de datos, los cules cumplen un rol especfico dentro de nuestros programas. Revisemos brevemente los ms conocidos:

String: Datos tipo texto


Los datos tipo string son datos de texto, que pueden incluir caracteres alfanumricos, signos, espacios, etc. No hay lmite en la longitud de este tipo de datos, y su finalidad es transmitir informacin textual, como una oracin, un prrafo, un texto entero. Existen varias formas de definirlos en el cdigo, la ms conocida y usada es encerrar el texto entre comillas (simples o dobles), pero tambin existen los formatos HEREDOC y NOWDOC:
echo "Este es un dato tipo string"; $variable = 'Tambin pueden ser asignados a una variable'; $hereDoc = <<<HD Este tambien es un dato tipo string HD; $nowDoc = <<<'ND' Continuamos con el dato tipo string ND;

Escape de caracteres
Un dato tipo texto, como ya dijimos, puede contener cualquier caracter, y debe ser delimitado por comillas simples o dobles. Un dolor de cabeza frecuente para muchos desarrolladores es la necesidad de imprimir un texto que contiene ambos tipos de comillas. Si delimitamos nuestro texto con comillas simples, entonces tendremos un problema a la hora de querer incluir una comilla simple textual dentro de nuestro texto, sin que esto indique el fin de la cadena. Para solucionar esto podemos escapar esa comilla simple que queremos que sea interpretada textualmente. Para escapar un caracter debemos precederlo por una barra invertida (\) Veamos un ejemplo:
$texto = 'Nuestro foro se llama \'Foros del Web\' y ahora tiene un wiki!'; echo $texto; // Imprime: Nuestro foro se llama 'Foros del Web' y ahora tiene un wiki!

Al usar una barra invertida delante de la comilla simple, le indicamos al intrprete PHP que ese caracter debe ser tomado textualmente y no como el final de la cadena. Intentar escapar cualquier otro caracter har que la barra invertida sea tomada tambin textualmente.

12

Uso de comillas dobles


Las cadenas se pueden delimitar usando comillas simples y dobles, pero no se comportan de igual manera. El uso de comillas dobles tiene una caracterstica adicional: Las variables includas en ese texto son procesadas y reemplazadas por su valor. Veamos el siguiente ejemplo:
$nombre = "Marco Madueo"; // Recordemos que los datos tipo texto pueden contener cualquier caracter echo "Bienvenido, \"$nombre\""; // Imprime: Bienvenido, "Marco Madueo"

Como ves, al usar comillas dobles, al igual que con las simples, podemos tambin escaparlas cuando queramos imprimirlas textualmente. Y adicionalmente, si queremos imprimir el signo de dlar sin que ste sea tomado como parte de un nombre de variable, tambin podemos escaparlo. Nota la diferencia entre usar comillas simples y dobles:
echo 'El valor de echo "El valor de valor de la la variable valor de la la variable variable \$nombre es $nombre'; // Imprime: El \$nombre es $nombre variable \$nombre es $nombre"; // Imprime: El $nombre es Marco Madueo

Usando comillas dobles disponemos tambin de ciertos caracteres especiales. Los ms usados son:
* \n * \r * \t echo : Salto de lnea : Retorno de carro : Tabulacin "Este texto va en una lnea \n Este va en la siguiente";

/* Imprime: Este texto va en una lnea Este va en la siguiente */

OJO, el salto de lnea \n no es un salto de lnea HTML (como <br>). Si ejecutas el cdigo anterior en tu navegador, vers que se imprime todo en una lnea. La diferencia la vers si observas el cdigo fuente generado. A lo largo de este manual vers la importancia de este salto de lnea sin ninguna aparente utilidad prtica.

HEREDOC y NOWDOC
Son sintaxis poco usadas, aunque pueden llegar a ser muy prcticas. Primero sepamos que HEREDOC es el equivalente de las comillas dobles, y NOWDOC el de las comillas simples. Estas dos sintaxis nos sirven para imprimir textos sin la necesidad de escapar las comillas. Son tiles a la hora de escribir o almacenar en variables textos largos, proceso engorroso si lo hacemos delimitando la cadena con comillas. Veamos la sintaxis de HEREDOC (Equivalente de las comillas dobles):

13

$variable = "Un valor"; $cadena = <<<FOO Texto largo, de varias lneas, que se imprime usando la sintaxis HEREDOC. Las variables aqu son interpretadas: $variable FOO; echo $cadena;

Y un ejemplo de NOWDOC
$variable = "Un valor"; $cadena = <<<'ABC' Texto largo, de varias lneas, que se imprime usando la sintaxis NOWDOC. Las variables aqu NO son interpretadas: $variable ABC; echo $cadena;

Hay que considerar algunas pautas. Para usar ambas sintaxis, debemos primero colocar el signo menor qu (<) 3 veces: <<<, seguidos inmediatamente de un identificador que conste de caracteres alfanumricos y de subrayado, clsicamente de 3 letras, y luego un salto de lnea. Es importante seguir esta secuencia y no agregar nada, como espacios, entre estos elementos. Para usar NOWDOC debemos encerrar el identificador entre comillas simples (ver ejemplo). Para cerrar el bloque, debemos dar un salto de lnea, escribir el identificador tal y como lo pusimos al inicio (NOWDOC, ahora NO se incluye las comillas que se coloc al abrir el bloque), cerrar la instruccin (punto y coma ;) y luego dar un salto de lnea. No se debe colocar espacios ni tabulaciones antes o despus de esta secuencia pues de ser as el bloque de texto no ser finalziado. La ventaja principal de estas sintaxis, como ya dijimos, es la posibilidad de escribir bloques largos de texto sin la necesidad de escapar las comillas. Usando HEREDOC las variable y los caracteres especiales ya vistos seguirn siendo reemplazados por sus valores correspondientes, no as con NOWDOC.

Int, Float: Datos tipo numrico


Los datos tipo Int representan nmeros enteros, positivos o negativos; mientras que los datos float o double representan cualquier nmero real. Estos datos pueden ser usados para realizar operaciones matemticas simples o complejas. A diferencia de los datos tipo texto, no deben ser encapsulados en comillas. Veamos los siguientes ejemplos:
$a = 1; // Entero $a = "1"; // Esto es un dato tipo string $a = 5.45; // Float o Double $b = 3 + 6; // Entero: 9

14

$d = ( ( $b / 3 ) + 5) * $c - 7;

Las operaciones usando datos numricos siguen los mismos principios que para las matemticas comunes.

Boolean: Datos tipo V/F


Los datos tipo boolean son indicadores de verdad o falsedad. Slo pueden tomar el valor de true y false, y provienen generalmente del resultado de realizar alguna comparacin o verificacin:
$variable = true; // No es sensible a maysculas y minsculas $variable = false; // No es sensible a maysculas y minsculas $variable = ($dato1 == $dato2); // true si $dato1 es igual (==) a $dato2

Array: Usando matrices


Un array o arreglo es un conjunto de datos organizados en base a ndices y valores, de tal manera que determinado ndice dentro del array hace referencia a su valor, que puede ser tambin otro array. Puede ser usado de mltiples maneras. Para crear un array se usa la construccin array() de la siguiente forma: array(indice1 => valor1, indice2 => valor2, ...):
$var = array( 1 => "Los ndices pueden ser numricos", "a" => 'o pueden ser textuales', "fdw" => 1, //Los valores tambien pueden ser nmeros "letras" => array(1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'e'), // arrays anidados "bool" => true // O booleanos ); // Los saltos de lnea no son necesario, pero ayudan a una mejor visualizacin del cdigo

Para acceder a los elementos de un array se usa el nombre de la variable que lo contiene, seguido del ndice del elemento deseado entre corchetes []:
echo $var['a']; // Imprime: o pueden ser textuales echo $var['letras'][2]; // Imprime: b

Los valores pueden ser de cualquiera de los tipos que soporta PHP. No es necesario indicar los ndices, y en ese caso se usarn valores enteros tomando como base el mximo valor entero ya existente:
$arreglo = array(3 => "c", "d", "e", "f"); echo $arreglo[5]; // Imprime: e

Analiza cada uno de los ejemplos hasta que entiendas el funcionamiento bsico de los arrays. Para modificar los elementos de un array lo puedes hacer igual que como si fueran variables:

15

$arreglo = array("fruta1" => "pera", "fruta2" => "manzana", "fruta3" => "banana"); echo $arreglo['fruta2']; // Imprime: manzana $arreglo['fruta2'] = 'naranja'; echo $arreglo['fruta2']; // Imprime: naranja

NULL: Datos que no existen


NULL (insensible a maysculas/minsculas) es un tipo de dato muy especial, que hace referencia a un valor inexistente. Vale decir, variables tipo null son variables que no han sido creadas y no existen en el script. Se usa, por ejemplo, para eliminar variable ya creadas:
$variable = "Existe"; // La eliminamos $variable = null; // Ahora $variable ya no existe en el script

Para eliminar variables podemos simplemente asignarles un valor NULL, como ya dijimos, o en su defecto usar la funcin unset(). Asignarles un espacio en blanco no elimina la variable:
// Formas CORRECTAS de eliminar una variable $variable = null; unset($variable); // Formas INCORRECTAS de eliminar una variable $variable = " "; $variable = ""; $variable = 0; $variable = false; $variable;

Otros tipos
Existen dos tipos ms de datos: Los recursos y los objetos. stos sern vistos posteriormente, ya que requieren un mayor nivel del conocimiento de PHP y escapan de los objetivos de cualquier tutorial bsico.

16

Manual de PHP: Operadores

Qu son los operadores?


Los operadores nos sirven para realizar operaciones entre variables, por ejemplo, sumas, restas, comparaciones, etc, la sintaxis es bastante natural con algunas excepciones.

Operadores aritmticos
Operador + * / % ++ -Operacin Sumar Restar Multiplicar Dividir Mdulo Incrementar Disminuir Descripcin Ejemplo Suma entre valores x=10+2 Resta entre valores y=5-1 Multiplica distintos valores z=5*5 Divide entre valores a=20/2 Devuelve el resto de una divisin 10%2 Suma una unidad a determinado valor $b=10; $b=++; Resta una unidad a determinado valor $b=10; $b=--; Resultado 12 4 25 10 0 11 9

Operadores de Asignacin
Operador Operacin = . Asignar Union Descripcin Asigna un valor a una variable Une dos variables Ejemplo $var = 1 $var1 . $var2 Resultado $var contiene 1 Union de $var1 con $var2

Operadores de Comparacin
Operador == === != <> !== < > Descripcin Ejemplo Resultado Compara dos valores (no compara $a == $b Verdadero si $a es igual a $b el tipo de variable) Compara los dos valores si son Verdadero si $a es igual a $b y $a === $b iguales y del mismo tipo son el mismo tipo de variable Compara si las variables son Verdadero si $a es diferente de $a != $b diferentes $b Compara si las variables son Verdadero si $a es diferente de $a <> $b diferentes $b Compara que las dos variables sean Verdadero si $a y $b son $a !== $b diferentes y de diferentes tipos diferentes y son diferentes tipos Compara que la primera variable $a < $b Verdadero si $a es menor que $b sea ms pequea que la segunda Compara que la primera variable $a > $b Verdadero si $a es mayor a $b sea mayor que la segunda

17

<= >=

Compara que la primera variable sea menor o igual que la segunda Compara que la primera variable sea mayor o igual que la segunda

Verdadero si $a es menor o igual a $b Verdadero si $a es mayor o igual $a >= $b a $b $a <= $b

Operadores Lgicos
Operador And Descripcin Compara que las dos variables sean verdaderas (tambin se puede usar &&) Compara que alguna de las dos variables sean verdaderas (tambin se puede usar ) Compara que $a o $b sean verdaderos pero no ambos Niega una condicin Ejemplo $a And $b Resultado Verdadero si $a y $b son verdaderos Verdadero si $a o $b son verdaderos Verdadero si $a o $b son verdaderos pero no ambos Verdadero si $a es falso

Or Xor Not

$a Or $b $a Xor $b !$a

Manual de PHP: Condicionales

Uso de condicionales en la programacin


Los condicionales son de gran ayuda en nuestro trabajo, pues nos permiten realizar una u otra accin en base al resultado verdadero/falso de la condicin que establecemos. Como ejemplo, si la variable $edad en el script es mayor a 18 entonces que muestre un mensaje que indique Ingrese su nmero de licencia de conducir, pero si es menor o igual a 18 que no lo haga.

Tipos de condicionales
if
Es la sintaxis bsica y la ms sencilla dentro de todos los condicionales en PHP. Lo utilizamos para que ejecute determinado cdigo SI Y SLO SI la condicin es verdadera.
<?php $estado_civil = 'Casado'; if ($estado_civil == 'Soltero') { echo 'Est buscando novia?'; }

18

En este caso pudimos haber preguntado su estado civil con anterioridad, el cul tenemos guardado en la variable $estado_civil, para entonces poder evaluar luego su valor. Como se observa en el ejemplo, el bloque de cdigo a ejecutar si la condicin es verdadera debe ir encerrado entre {llaves}, y slo si el cdigo que queremos ejecutar consta de una sola lnea podemos omitir las llaves; sin embargo, es recomendable nunca omitirlas para conservar la legibilidad del cdigo. Ntese adems que en el ejemplo hemos usado el operador == para comparar con un valor.

if else
Es una ampliacin de la sintaxis IF. Nos permite ejecutar un bloque de cdigo si la condicin es verdadera, y otro bloque diferente si es falsa.
<?php $estado_civil= 'Soltero'; if ($estado_civil == 'Casado') { echo 'Felicitaciones!'; } else { echo 'Est buscando novia?'; }

En este ejemplo podemos notar que las lneas en donde se encuentra el if y el else no terminan con un (;), pues no representan una instruccin PHP propiamente dicha, sino un nodo que deriva el flujo de ejecucin de cdigo a un lado u otro dependiendo del resultado de la evaluacin de la condicin.

if elseif else
Es una versin un poco ms avanzada del anterior en donde podemos tener dos o ms condiciones que se ejecutan secuencialmente hasta que una es evaluada como VERDADERA, en cuyo caso se ejecuta el bloque correspondiente de cdigo y finaliza la evaluacin de las condiciones restantes. Si se incluye un bloque else al final, ste ser ejecutado si ninguna de las condiciones anteriores es verdadera.
<?php $estado_civil = 'Soltero'; if ($estado_civil == 'Casado') { echo 'Felicitaciones!'; } elseif ($estado_civil == 'Viudo') { echo 'Sentimos mucho su prdida'; } elseif ($estado_civil == 'Conviviente') { echo 'Esperamos su pronto matrimonio'; } else { echo 'Est buscando novia?'; }

Veamos otro ejemplo utilizando valores en las variables:


<html> <body> <?php

19

$numero = 115; if ($numero == 115) { echo 'Felicitaciones usted ha ganado la lotera!'; } elseif ($numero >= 116) { echo 'Su ticket de lotera participa la otra semana'; } else { echo 'Lo sentimos, pero su nmero no ha salido ganador'; } ?> </body> </html>

En este caso adems del cdigo del programa hemos incluido las etiquetas HTML lo cual se puede hacer con cualquiera de los ejemplos que hemos dado, y vemos cmo podemos desplegar un mensaje segn en qu rango se encuentre un nmero que hemos definido anteriormente o que bien puede ser un valor resultado de una operacin.

switch
Es otro tipo de condicional muy similar al IF ELSEIF ELSE. Su ventaja radica en que permite confrontar un valor patrn con una serie de valores. Cuando uno de los valores es igual (==) al valor patrn, se ejecuta el bloque de cdigo correspondiente. Note que la sintaxis es algo diferente a la de los condicionales estndares IF, pero hace que el cdigo se vea mucho ms legible y ordenado.
<html> <body> <?php $sistema_operativo = 'Mac OS X'; switch($sistema_operativo) { case 'Windows': // Podemos incluir comentarios echo "Su sistema lo invent <strong>Bill Gates</strong><br />"; echo " y sirve mucho para jugar solitario."; break; //este comando sirve para finalizar el condicional case 'Linux': echo 'Su sistema fue creado a partir del cdigo de Linus Torvalds.'; break; default: //cualquier otro valor no especificado en los case echo "Hay un mito con las computadoras creadas por Apple<br />"; echo "que dice que solo sirven para disear, pero no es cierto."; } ?> </body> </html>

La palabra clave default desempea el mismo rol que el ELSE, es decir, el bloque de cdigo bajo esta palabra se ejecuta cuando la confrontacin del valor patrn con los otros valores dio en todos FALSO. Adems, es muy importante saber que cada bloque de 20

cdigo DEBE finalizar con la palabra clave break, como en el ejemplo. De ser omitida, la ejecucin del cdigo continua ignorando las condiciones siguientes, hasta que encuentra un break o termina el bloque switch.

Manual de PHP: Bucles

Qu son los Bucles?


Tambin llamados loops en ingls, nos permiten realizar tareas repetitivas durante un nmero especfico de veces o mientras una condicin se cumpla.

Tipos de bucles
while
Ejecuta un bloque de cdigo mientras una condicin especfica sea verdadera, por ello la verificacin de dicha condicin se hace desde un principio.
$i = 1; while($i <= 5) { echo 'Nmero ' . $i . '<br>'; ++$i; // Esta instruccin hace que el valor de $i se incremente en 1 }

En el ejemplo, primero definimos una variable $i asignndole el valor de 1, luego iniciamos el bucle diciendo que mientras $i contenga un valor menor o igual a 5 que ejecute lo que est entre llaves {}, osea desplegar un mensaje que diga Nmero ms el valor de $i, y luego que le sume una unidad, lo que nos dara como resultado:
Nmero Nmero Nmero Nmero Nmero 1 2 3 4 5

Cuando $i toma el valor de 6, la condicin deja de cumplirse (es falso que 6 es menor o igual a 5). Por lo tanto, el bucle termina y se contina con la ejecucin de las instrucciones despus del ciclo.

do while
La diferencia con el anterior es que ste siempre va a ejecutar el cdigo la primera vez, y luego recin har la comprobacin de la condicin para determinar si contina un nuevo ciclo o termina.
$i = 1; do { ++$i;

21

echo 'Nmero ' , $i , '<br />'; } while ($i <= 5);

Resultado:
Nmero Nmero Nmero Nmero Nmero 2 3 4 5 6

Explicacin: como en un inicio colocamos el $i++ (le sumamos uno al valor de $i); el primer valor que muestra es Nmero 2 pero tambin pudimos haber colocado eso luego del echo para que mostrara del 1 al 5.

for
Su sintaxis es bastante corta y dentro de la misma lnea se especifica la inicializacin de la variable (que se ejecuta solo una vez), la condicin a evaluar, y una operacin a realizar. Estos "parmetros" deben escribirse en esa secuencia y separados por punto y coma (;) uno de otro, pues constituyen cada uno instrucciones totalmente diferentes. En el siguiente ejempo entenders mejor este concepto:
for($i=0; $i<=100; ++$i) { echo 'Nmero ' . $i . '<br>'; }

En este ejemplo el for le asigna un valor de 0 a $i (primera instruccin) y condiciona que, luego de incrementar en uno el valor de $i (tercera instruccin), se inicie un nuevo ciclo s y slo s $i tiene un valor menor o igual a 100 (segunda instruccin). Para entender esto es importante que sepas el papel de cada una de estas instrucciones

La primera instruccin es ejecutada slo una vez, al iniciar el ciclo for. Por eso se usa generalmente para asignar un valor a nuestra variable gua o bandera, que en este caso es $i. La segunda instruccin se ejecuta siempre al iniciar un nuevo ciclo (No en el primer ciclo). Esta es evaluada para, segn el valor booleano que devuelva, determinar si debe iniciarse un ciclo nuevo o si el bucle debe terminar. Por lo tanto, casi siempre se hace una comparacin entre el valor de $i (la variable gua) y un valor estndar. La tercera instruccin ejecuta una tarea adicional siempre al finalizar cada ciclo. Se le usa generalmente para modificar el valor de la variable gua, como por ejemplo, incrementar su valor.

Ahora, sabiendo esto, vuelve a revisar el ejemplo anterior para que te des cuenta del proceso que se sigue al realizar este bucle.

foreach
Se utiliza para recorrer arreglos (arrays), que como vimos son conjuntos de informacin dentro de una variable. El ciclo foreach toma uno de los valores del array (con o sin su 22

ndice) y lo asigna a otras variables 'temporales' que especificamos, luego ejecuta un cdigo, y al finalizar se mueve al siguiente elemento del array. Por lo tanto, vuelve a ejecutar el cdigo tantas veces como valores tenga el arreglo.
<?php $hermanos = array('Juan', 'Lucas', 'Carlos', 'Adolfo', 'Roberto'); foreach ($hermanos as $nombre) { echo $nombre . '<br />'; }

Explicacin: En la primera lnea asignamos a una variable $hermanos un conjunto de datos organizados en un arreglo, usando array() y separando cada dato con comas. Luego, con el foreach lo que hace es crear un ciclo en base a los datos contenidos en nuestra variable, asignando en cada ciclo uno de los valores a la nueva variable $nombre. El foreach hace un recorrido desde el primer valor de $hermanos que en este caso sera Juan, le pasa ese valor a $nombre y entonces imprime la variable usando echo, luego vuelve a ejecutar el ciclo, pero ahora $nombre tiene el segundo valor de nuestro arreglo, que sera Lucas, y as sucesivamente hasta terminar con todos los elementos del arreglo. Resultado:
Juan Lucas Carlos Adolfo Roberto

Una extensin de este tipo de ciclo es que adems puedes hacer el mismo proceso asigando tambin a otra variable el ndice correspondiente a cada valor del arreglo. Miremos el siguiente ejemplo
$frutas 'a' 'b' 'c' 'd' 'e' ); = array( => 'Pltano', => 'Pia', => 'Manzana', => 'Fresa', => 'Naranja'

foreach($frutas as $letra => $fruta) { echo "La fruta '$letra' es '$fruta' <br>"; }

El proceso es el mismo, slo que sta vez en la lnea del foreach agregamos una variable adicional $letra que en cada ciclo tomar como valor el ndice correspondiente a los valores respectivos, asignados a $fruta. La sintaxis bsica de foreach, en resumen, es
foreach($arreglo as $variable_indice => $variable_valor) { El cdigo }

Con el ejemplo anterior obtendramos:


La fruta 'a' es 'Pltano'

23

La La La La

fruta fruta fruta fruta

'b' 'c' 'd' 'e'

es es es es

'Pia' 'Manzana' 'Fresa' 'Naranja'

Manual de PHP: Ejercicios Prcticos


La prctica hace al maestro as que veremos algunos otros ejemplos para que examines el cdigo y veas lo que hacen, algunas cosas sern totalmente desconocidas pero luego explicaremos qu hace cada ejemplo.

Variables de PHP
Este ejemplo te mostrar informacin acerca de la instalacin de PHP en tu servidor o computadora, muchas veces es til para saber qu mdulos estn activos o cuales no, as como para identificar los lmites de memoria que tienen ciertas configuraciones que talvez te estn ocasionando problemas.
<html> <body> <?php phpinfo(); ?> </body> </html>

Identificando el navegador
Adems de las variables locales y globales existen las _variables reservadas_ tambin conocidas como globales, a stas no se les puede asignar un valor, pues lo que contienen es informacin del servidor web o informacin del cliente que lo visita. El siguiente cdigo nos muestra el tipo de navegador que estamos utilizando para ingresar.
<html> <body> <?php echo $_SERVER["HTTP_USER_AGENT"]; ?> </body> </html>

Utilizando IF y las variables reservadas

24

Ahora veamos un ejemplo combinando dos de los temas aprendidos en este tutorial, lo que haremos es evaluar si el navegador utilizado es Internet Explorer para entonces mostrar un mensaje.
<html> <body> <?php if (strstr($_SERVER["HTTP_USER_AGENT"], 'MSIE')) { echo "Usted utiliza Internet Explorer<br />"; } ?> </body> </html>

Como notarn, utilizamos una funcin llamada strstr al hacer el IF, lo que esto realiza es buscar una cadena de texto dentro de otra, en este caso la frase MSIE dentro del resultado de la variable $_SERVER y mostrarnos todo el texto que le sigue, otro ejemplo similar:
<?php $nombre = 'Juan Carlos Lpez Morales'; $extraer = strstr($nombre, 'Carlos'); echo $extraer; // Nos devolver Carlos Lpez Morales ?>

A la variable $extraer le estamos indicando que busque el texto Carlos dentro de $nombre, para que entonces nos devuelva Carlos ms el resto del contenido.

Utilizando funciones predefinidas


PHP tiene una cantidad de funciones listas para usarse tal como vimos con strstr , veamos algunos otros ejemplos.
<?php echo date("Y/m/d") . "<br />"; echo date("Y.m.d") . "<br />"; echo date("Y-m-d") ?>

La funcin date() devuelve la fecha actual del servidor o computadora en donde estemos ejecutando el cdigo y la puede mostrar en diferentes formatos, tal como el ejemplo anterior en donde Y = al ao, m = al mes y d= da en valores numricos.

Manual de PHP: Funciones


PHP posee cientos de funciones prediseadas tal como vimos algunas en mdulos anteriores, pero nosotros tambin podemos crear funciones propias que ejecuten ciertas instrucciones cada vez que hagamos un llamado a ellas.

25

Por ejemplo, podemos crear una funcin que haga un calculo matemtico complejo cuando le enviemos dos valores, entonces en lugar de programar de nuevo ese clculo en cada momento que lo necesitemos, solo lo hacemos una vez como una funcin, y luego hacemos un llamado cada vez que vayamos a necesitar de ese bloque de programacin. Para declarar la funcin dentro de nuestros programas hacemos lo siguiente:
function nombredeFuncion() { bloque de programacin; }

Veamos algunos ejemplos, desde los ms sencillos para ir avanzando.

Funciones Bsicas
<html> <body> <?php function sitioweb() { echo 'Foros del Web'; } echo 'Bienvenido a nuestro sitio llamado '; sitioweb(); ?> </body> </html>

En ste primer ejemplo iniciamos nuestro bloque de programacin creando nuestra primera funcin titulada sitioweb que tiene una impresin de pantalla por medio de echo , la funcin por si misma no hace nada hasta que la llamamos, an teniendo el echo el mensaje no se desplegar sino hasta que escribimos sitioweb();

Funciones con Parmetros


Para hacer las funciones mucho ms tiles, podemos enviarles parmetros, es decir valores para que los utilice y realice algn clculo u operacin.
<html> <body> <?php function suma($valor1) { $valor2=10; echo "El resultado es " . ($valor1+$valor2); } echo "Sumar 15 + 10: "; suma(15); ?> </body> </html>

26

En este caso lo que hacemos es ingresar dentro de los parntesis de suma() el valor de 15, all estamos llamando a la funcin por lo que el programa ejecutar el cdigo indicado arriba sumando el valor enviado ms el valor de la variable $valor2 para mostrarnos el resultado. Conviene poner los parntesis agrupando la operacin.

Funciones con dos o ms Parmetros


Similar al ejemplo anterior pero ahora enviando ms parmetros dentro del parntesis, como vemos debemos separar cada uno con una coma (,). Conviene poner los parntesis agrupando la operacin.
<html> <body> <?php function suma($valor1,$valor2) { echo "El resultado es " . ($valor1+$valor2) ; } echo "Sumar 15 + 10: "; suma(15,10); ?> </body> </html>

Funciones con Retorno de informacin


En los ejemplos anteriores cada funcin imprime el resultado de la operacin automticamente, pero tambin podemos decirle que nos regrese ese resultado para que nosotros lo utilicemos en el espacio y momento que lo necesitemos.
<?php function suma($valor1,$valor2) { $total=$valor1+$valor2; return $total; } echo "La suma de 15 + 10 es igual a " . suma(15,10); ?>

Otro ejemplo:
<?php function Cuadrado($numero) { return $numero * $numero; } echo Cuadrado(4); ?> // igual a 16

Funciones con Retorno de mltiples valores


En el ejemplo anterior vemos que return nos devuelve el resultado de una operacin o variable, pero en algunas ocasiones necesitamos ms de un dato, para ello utilizamos un arreglo (array) y la funcin llamada list.

27

function numeros() { return array (0, 1, 2); } list ($cero, $uno, $dos) = numeros();

En return array() tenemos tres valores los cuales luego podemos asignar cada uno a una variable distinta gracias a la funcin list, de esa forma $cero tendr el primer valor, $uno tendr 1 y $dos el ltimo valor del arreglo.

Manual de PHP: Utilizando Formularios para el envo de datos


Gran parte del trabajo que harn nuestros programas ser procesar informacin que los usarios ingresen a travs de formularios HTML, con esos datos podemos realizar operaciones en el momento o guardarlos a bases de datos por ejemplo. Vamos a ver cmo deben estar estructurados los formularios y luego explicaremos la conexin con nuestros programas en php, la base de un formulario es la siguiente:
<form action="programa.php" method="post" id=formulario> Nombre: <input type="text" name="nombre" /> Edad: <input type="text" name="edad" /> <input type="submit" /> </form>

En este ejemplo, la etiqueta <form> sirve para armar el formulario en HTML, dentro de sta etiqueta estamos utilizando action para indicar que toda la informacin sea enviada al archivo llamado programa.php y por ltimo method es para especificar de qu forma ser enviada esa informacin para lo cual hay dos formas, GET y POST.

$_GET y $_POST
Cuando utilizamos $_GET dentro del php y el formulario, la informacin que enviamos ser visible por cualquier persona pues es mostrada en la barra de direcciones, por lo que no debemos utilizar ste mtodo para enviar contraseas o informacin sensible. Una limitante de GET es que solo puede enviar hasta 100 caracteres. Comparado a $_POST, la informacin enviada por esta forma es invisible pues no se muestra cuando se enva y prcticamente no hay un lmite en cuanto a tamao se refiere. Es recomendable utilizar el segundo mtodo cuando vamos a enviar informacin que por ejemplo va a ser almacenada en una base de datos y ya no va a ser modificada, o cuando vamos a enviar un formulario de contacto por ejemplo, y utilizamos GET cuando la informacin puede cambiar en algn momento, por ejemplo, si estamos buscando algo en Google puede ser que los resultados no son los que necesitemos entonces regresamos a la pantalla anterior para modificar la informacin.

28

Ejemplos de envo de informacin mediante GET


Realicemos el primer ejemplo creando un archivo llamado formulario.php con el siguiente contenido utilizando el mtodo GET:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Formulario</title> </head> <body> <form action="programa.php" method="get" id=formulario name=formulario> Nombre: <input type="text" name="nombre" id="nombre" /> Edad: <input type="text" name="edad" id="edad" /> <input type="submit" value="enviar" name="enviar" id="enviar" /> </form> </body> </html>

Y creamos un archivo llamado programa.php con lo siguiente


<html> <body> Bienvenido <?php echo $_GET['nombre'];?>. <br /> Tu edad es: <?php echo $_GET['edad'];?> aos. </body> </html>

Ahora abrimos en el navegador formulario.html, ingresamos la informacin que se nos pide y veremos cmo nuestro programa procesa los datos. A simple vista podemos entender bastante bien cmo funciona, como vemos al utilizar $_GET['nombre']; lo que hacemos es capturar el campo llamado nombre del formulario:
<input type="text" name="nombre" id="nombre" />

Y lo mostramos utilizando echo tal como aprendimos a imprimir en pantalla las variables.
o

Captura de pantalla*

En el ejemplo anterior la barra de direcciones lucira de la siguiente forma:

http://localhost/programa.php?nombre=Juan&age=25

29

Ejemplos de envo de informacin mediante POST


Ahora veamos cmo funciona POST, en donde al enviar la informacin la barra de direcciones quedara como
http://localhost/programa.php

Crear un archivo llamado formulario.html


<html> <body> <form action="archivo.php" method="post" id=formulario> Nombre: <input type="text" name="nombre" /> Edad: <input type="text" name="edad" /> <input type="submit" /> </form> </body> </html>

Y otro llamado programa.php:


<html> <body> Bienvenido <?php echo $_POST["nombre"]; ?>,<br /> Tu edad es: <?php echo $_POST["edad"]; ?> aos. </body> </html>

Como vemos cuando en el formulario utilizamos method=get en la programacin tambin debemos utiliza $_GET, igual para post, sin embargo tambin existe $_REQUEST que puede obtener la informacin de los formularios sin importar qu metodo se utiliza, ejemplo:
Bienvenido <?php echo $_REQUEST["nombre"]; ?>,<br /> Tu edad es: <?php echo $_REQUEST["edad"]; ?> aos.

Manual de PHP: Tipos de control para los formularios


Un formulario puede tener diversos tipos de datos para la recoleccin de informacin, vamos a ver algunos de ellos junto a una breve explicacin, te recomiendo irlos probando dentro de un documento .html para que veas cmo funcionan.

Inputs
Son campos regularmente para el ingreso de texto, son los que vemos en los formularios de contacto para ingresar nombre, correo electrnico, etc. Sintaxis:

30

<form> <label for="nombre_campo">Texto</label> <input id="nombre_campo" type="text" name="nombre" value="texto_default" /> </form>

La primera lnea label sirve para identificar el nombre del campo que le sigue, es adems la etiqueta que aparece para que el usuario sepa qu dato se le est pidiendo que llene aunque no es necesario encerrarlo en una etiqueta label.
o

captura de pantalla de ejemplo*****

Otra variante de este Input es el de tipo password que hace que el texto que se escribe en el sea reemplazado por smbolos como proteccin:
<input id="contrasea" type="password" name="contrasea" value=""" />

Y tambin podemos ocultar stos campos de texto colocndole el type=hidden lo cual nos sirve para enviar alguna informacin ya predefinida junto a todo lo que el usuario ingrese.
<input type="hidden" name="contador" value="350 /> o

captura

El ltimo tipo de input que veremos es el submit que es el botn que regularmente hacemos click para poder enviar un formulario con la informacin que llenamos.
<form name="input" action="programa.php" method="get"> Nombre: <input type="text" name="nombre" /> <input type="submit" value="Enviar" /> </form> o

captura

31

Radio
Los controles de tipo Radio son los que vemos que tienen una forma redonda y se pueden utilizar para preguntar opciones de tipo falso/verdadero, masculino/femenino, etc y en donde solo puede estar seleccionada una de las opciones:
<form> <label for="nombre_input">Masculino</label> <input type="radio" name="sexo" value="masculino" checked="checked"/> <label for="nombre_input">Femenino</label> <input type="radio" name="sexo" value="femenino" /> </form>

Checked nos sirve para indicar que queremos que ese campo aparezca seleccionado desde un inicio.
o

captura de pantalla de ejemplo*****

Checkbox
Estos controles son usados cuando se necesita que se pueda seleccionar una o ms opciones de las que se presentan, o tambin cuando solo se presenta una opcin y necesitamos que el usuario la marque por ejemplo para poder continuar con algn proceso.
<form> Mac OS <input type="checkbox" name="sistema" value="mac" checked="checked"/> <br /> Windows <input type="checkbox" name="sistema" value="windows" /> <br /> Apple <input type="checkbox" name="sistema" value="linux" /> </form>

El campo value puede contener tambin nmeros,


o

captura de pantalla de ejemplo*****

32

Textarea
A diferencia del primer input que vimos, los textarea son campos grandes para ingreso de texto multilnea en donde podemos especificar la cantidad de stas y de columnas que queramos.
<form> <textarea id="comentario" name="comentario" rows="10" cols="30"> texto default si deseamos </textarea> </form> o

captura de pantalla de ejemplo*****

Manual de PHP: Bases de Datos

Introduccin a las bases de datos


Como ya vimos en los tutoriales bsicos, una de las ventajas de PHP es que, al ser un lenguaje interpretado por el servidor, permite generar pginas HTML dinmicas, es decir, que van cambiando su contenido en base a distintas situaciones. El ejemplo clsico es mostrar un mensaje de bienvenida a los usuarios registrados de nuestro sitio, y uno distinto a aquellos visitantes no registrados. Es decir, hemos personalizado el contenido mostrado antes de envirselo al usuario como HTML. Habiendo recordado este punto muy importante, entenderemos fcilmente la funcin de las bases de datos. En trminos simples, constituyen un sistema de almacenamiento organizado de datos, en los cuales se pueden ingresar nuevos datos, modificar los ya existentes, leerlos y procesarlos, o incluso eliminarlos. Cabe sealar que aqu nos vamos a referir al modelo de bases de datos relacional, puesto que existen muchos modelos distintos de bases de datos. En general, vamos a ver que una base de datos relacional est formada por mltiples tablas, y cada tabla de una serie de datos o registros.

Las tablas son los contenedores de informacin. En nuestra base de datos podremos tener mltiples tablas, cada una destinada a un fin especfico. En una guardaremos los datos de los usuarios registrados en nuestro sitio, en otra pondremos los mensajes de visita, y en otra las noticias. Podemos crear tantas tablas como necesitemos para el sistema que queremos crear.

33

Cada tabla est formada por una serie de columnas, llamadas usualmente campos o atributos. stas van a contener un determinado tipo de datos, como nmeros o texto, y van a estar representadas por un nombre nico que las va a identificar. Por ejemplo, si queremos tener un sistema de comentarios en nuestro sitio, tendremos una tabla llamada comentarios, y en ella mltiples columnas, como nombre, fecha, ip, email y comentario. Una prctica estndar muy recomendada es tener siempre una columna ndice que va a identificar cada registro en nuestra tabla. Por lo tanto, a nuestros campos aadiremos uno llamado id. Una fila es un registro de datos. Podemos tener tantas filas en nuestra tabla como capacidad tenga nuestro servidor. Siguiendo el ejemplo anterior, cada nuevo comentario que deje un usuario ser almacenado en nuestra tabla destinada a ello, junto con los otros datos como su nombre, fecha, etc. Este conjunto de datos que vamos a insertar en la tabla constituye un registro o una fila dentro de ella.

Un ejemplo de tabla en una base de datos relacional:

El lenguaje SQL
Una base de datos es un sistema que dispone de su propio lenguaje, muy diferente al lenguaje PHP. Hay muchos lenguajes en funcin de la base de datos, pero el que vamos a utilitzar es el conocido lenguaje SQL, este est formado por una serie de instrucciones, las cules van a modificar, agregar o eliminar los datos almacenados en la base de datos. No es el objetivo de este tutorial profundizar en este lenguaje. Para poder interactuar con la base de datos PHP dispone de una serie de funciones, las cules permiten tres tipos de operaciones bsicamente:

Abrir/cerrar conexiones con los servidores de bases de datos Ejecutar consultas SQL Trabajar sobre el resultado de dichas consultas

Gestores de bases de datos


Los Sistemas Gestores de Bases de Datos (SGBD), son los encargados de facilitarnos la creacin y manipulacin de las bases de datos. Existen un gran nmero de gestores de bases de datos, y PHP dispone de herramientas para integrar y relacionar sistemas con muchos de ellos. Nosotros utilitzaremos, evidentemente, los de bases de datos relacionales, y entre los ms conocidos destacan: 34

MySQL Manual de PHP & MySQL PostgreSQL Oracle ODBC

En todas ellas se usa el lenguaje SQL. La ms usada y conocida es MySQL, pero PHP puede tambin interactuar con las dems. Cabe destacar que, pese a que conozcamos el lenguaje SQL y estos SGBD estn basados en l, puede que algunas instrucciones determinadas no funcionen en algunos de stos. Esto es porque en realidad estos gestores pueden haber redefinido en mayor o menor medida el lenguaje para lograr el objetivo para el que fueron diseados. Sin embargo, esto slo suele ocurrir en las instrucciones ms avanzadas, en cuyo caso si recibimos un error de sintaxis deberamos recurrir al manual para comprobar cul es la instruccin adecuada para nuestro propsito.

Manual de PHP: MySQL


Como mencionamos al hablar de bases de datos, MySQL es el gestor de bases de datos ms difundido y quizs el ms usado. PHP dispone de un amplio grupo de funciones para interactuar con este motor, haciendo que el manejo de la informacin almacenada en la base de datos desde un script PHP sea muy fcil. Ya mencionamos que para poder enviarle instrucciones al servidor MySQL tenemos que hacerlo en su propio lenguaje, el lenguaje SQL. Conforme vayamos desarrollando cada seccin iremos viendo la sintaxis bsica de las sentencias SQL ms usadas.

Conectar y desconectar al servidor


Antes de ejecutar cualquier consulta SQL debemos primero abrir una conexin con el servidor MySQL. Para ello disponemos de la funcin mysql_connect(). Para abrir una conexin debemos contar con la direccin del servidor MySQL (proporcionada por el proveedor de hosting, o en su defecto localhost), un nombre de usuario y una contrasea, los cules pasaremos como parmetros a esta funcin.
$servidor = 'localhost'; $usuario = 'root'; $clave = 'abcdef'; mysql_connect($servidor, $usuario, $clave);

Luego de hacer esto tendremos una conexin abierta con nuestro servidor MySQL, y podemos ahora trabajar sobre ella.

35

Ocasionalmente necesitaremos conectarnos a dos o ms servidores simultneamente (de hecho son casos muy excepcionales). Para poder lograrlo debemos trabajar tambin con recursos de conexin. Un recurso es, en trminos simples, una variable que lleva consigo la llave de determinado proceso. La funcin mysql_connect() genera un recurso de conexin, llamado identificador de enlace, que lleva consigo la conexin abierta con el servidor MySQL. Podemos usar ese recurso para hacer referencia a esa conexin de forma especfica. Para obtenerlo basta con asignar la funcin vista a una variable que se convertir en el recurso para esa conexin:
$conexion = mysql_connect($servidor, $usuario, $clave);

Como casi nunca tendremos que abrir varias conexiones simultneas, no tocaremos ms el tema de los identificadores de enlace. Slo tienes que saber que estn ah. Tambin disponemos de mysql_close(), una funcin destinada a cortar la conexin abierta con el servidor MySQL. Antiguamente se sugera siempre cerrar la conexin con el servidor MySQL al terminar de ejecutar todas las consultas SQL, argumentando que se liberaba la memoria usada por sta en el servidor; pero ahora se sugiere dejarla abierta, ya que al terminar la ejecucin del script todas las conexiones abiertas son cerradas automticamente; adems, si por alguna razn se necesita volver a consultar a la base de datos tendremos que abrir nuevamente la conexin, y eso s genera una carga totalmente innecesaria al servidor. Por lo tanto, el uso de mysql_close() debe quedar reservado exclusivamente para aquellos casos en los que se requiera procesar una gran cantidad de informacin tras ejecutar las consultas SQL. En general, nunca cerraremos la conexin con el servidor MySQL; bastar con indicar entonces que para hacerlo basta con llamar a esa funcin:
mysql_close();

Seleccionar la base de datos


Una vez que tenems abierta la conexin con el servidor MySQL debemos seleccionar nuestra base de datos. Aclaremos que el servidor MySQL no es lo mismo que la base de datos. Un servidor contiene numerosas bases de datos, nosotros podemos crear nuevas bases de datos o borrar alguna del servidor. Por lo tanto, es imprescindible indicarle al script y al servidor sobre qu base de datos vamos a trabajar. Para realizarlo, usamos la funcin mysql_select_db(), a la cul pasaremos como parmetro el nombre de nuestra base de datos.
mysql_select_db('base_de_datos');

Una vez seleccionada la base de datos, podemos empezar a ejecutar consultas SQL.

Realizar consultas

36

Como ya hemos venido diciendo, las consultas SQL, o tambin conocidas por su nombre en ingls como queries, son instrucciones que le enviamos al servidor MySQL para que ejecute determinada tarea. Una consulta, en trminos prcticos, no es ms que una cadena de texto. Para ejecutar la consulta debemos usar la funcin mysql_query() pasndole como parmetro la cadena de texto que contiene la consulta SQL. Al llamarla as, estaremos haciendo una consulta a la base de datos. Al igual que mysql_connect(), esta funcin tambin crea un recurso, el cul no ser til despus paratrabajar en base a la consulta que hemos realizado. Veamos un ejemplo de todo lo visto hasta ahora:
mysql_connect('localhost', 'admin', ''); mysql_select_db('mi_base_de_datos'); $query = mysql_query('SELECT * FROM tabla');

Al realizar la consulta, tenemos el recurso $query que podremos usar luego para leer los datos devueltos por la consulta o trabajar sobre ella. NOTA: es muy frecuente ver que muchos intentan usar el recurso devuelto por mysql_query() como si fuese el resultado en s de la consulta. Debemos aclarar que por s slo este recurso no representa nada, no se puede imprimir ni se puede emplear directamente, sino a travs de otras funciones que veremos en las siguientes secciones.

Procedimientos ms comunes
En esta seccin vamos a revisar las tareas ms frecuentemente usadas al trabajar con bases de datos. Para hacerlo, pensemos que tenemos una base de datos llamada "principal" y una tabla en ella llamada "comentarios" que tiene la siguiente estructura:
* id almacena el identificador de cada registro, es un campo autoincrementable, esto quiere decir que para cada registro el valor de este campo se incrementa en 1. * nombre el nombre de la persona que enva el comentario * email la direccin de correo de la persona que enva el comentario * comentario el comentario del usuario * estado el estado actual del comentario (publicado, eliminado o spam)

37

No profundizaremos en el cdigo SQL usado para crear la bases de datos o esa tabla en ella, pues no es algo que vayamos a realizar rutinariamente en nuestros scripts. Adems existen aplicaciones como PHPMyAdmin que van a facilitar estas tareas. Basta con indicar que las consultas SQL son estas: Crear la base de datos
CREATE DATABASE 'principal';

Crear la tabla comentarios


CREATE TABLE `comentarios` ( `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , `nombre` CHAR( 75 ) NOT NULL , `email` CHAR( 75 ) NOT NULL , `comentario` LONGTEXT NOT NULL , `estado` CHAR( 20 ) NOT NULL )

Si realmente deseas profundizar en el tema del lenguaje SQL puedes leer el manual de SQL en Maestros del Web. Vamos a revisar los procedimientos ms comunes al hablar de bases de datos, los cules son:

SELECT: Obtener los datos existentes INSERT: Insertar nuevos datos UPDATE: Actualizar los datos existentes DELETE: Eliminar datos existentes

38

SELECT: Obtener los datos


La primera tarea que vamos a ver es la extraccin de datos de una base de datos. La sentencia SQL que usaremos es SELECT. Nos permite seleccionar los datos de una tabla especfica en nuestra base de datos. La sintaxis bsica de una consulta tipo SELECT es:
SELECT campo1, campo2, ... FROM tabla

Veamos un ejemplo sencillo:


// La consulta SQL $sql = "SELECT nombre, email FROM comentarios"; $query = mysql_query($sql);

Con esta consulta le estamos pidiendo al servidor MySQL que nos enve el nombre y email de todos los registros en la tabla comentarios. Si quisiramos todos los datos, en vez de colocar uno a uno los nombres de los campos podemos usar un asterisco (*) para hacer referencia a todas las columnas de la tabla. Podemos hacer la consulta un poco ms especfica, para ello hacemos uso de las clasulas disponibles para esta sentencia. Una clasula acta igual que un parmetro para los tags HTML. Veamos las ms comunes:

WHERE: Acta como un filtro en la consulta SQL, haciendo que sta devuelva slo los campos que cumplan con los criterios all establecidos (WHERE campo1 = 'valor1' AND campo2 = 'valor2'). Lo ms comn es hacer comparaciones, donde comparamos el valor de un campo con un valor gua. LIMIT: Define cuntos registros queremos que nos devuelva la consulta SQL y desde dnde debe empezar a extraer (LIMIT registro_inicial, nmero_de_registros). El primer registro en nuestro resultado va a ser el registro cero (0), por lo que si queremos extraer 3 registros a partir del segundo deberemos poner LIMIT 1, 3 ORDER BY: Ordena los resultados en base a una columna (ORDER BY campo ASC/DESC). Por ejemplo, si queremos ordenar en orden alfabtico (ascendente) en base al campo nombre, pondremos ORDER BY nombre ASC

Veamos la nueva consulta, pero esta vez ms especfica:


// La consulta SQL $sql = "SELECT * FROM comentarios WHERE estado = 'spam' ORDER BY id DESC LIMIT 0, 3"; $query = mysql_query($sql);

Si despedazamos la consulta, veremos que le estamos pidiendo al servidor MySQL que nos devuelva todos los campos (SELECT *) de los registros de la tabla 'comentarios' (FROM comentarios) cuyo estado es 'spam' (WHERE estado = 'spam'), pero ordenndolos en orden descendente en base al valor del campo 'id' (ORDER BY id DESC) y que slo nos d 3 registros empezando por el primero (LIMIT 0, 3).

39

Hecha la consulta hemos obtenido un recurso, y lo hemos guardado en la variable $query. Ahora podemos trabajar sobre esa consulta haciendo referencia a esa variable.

Leer los datos devueltos


Como dijimos anteriormente, un recurso no puede ser usado directamente para imprimir los resultados, sino que debe asociarse a una funcin segn lo que queremos realizar. Empezaremos explicando cmo leer los registros que coincidieron con nuestra consulta. Para hacer ello, PHP tiene la funcin mysql_fetch_assoc(), la cul genera un arreglo que contiene como ndices los nombres de los campos (array asociativo), cada uno con su valor correspondiente, para cada registro que devolvi nuestra consulta. En cada llamada a esta funcin se devuelve un fila o registro, por lo que, para leer todos los registros debemos llamar la funcin tantas veces como filas haya devuelto nuestra consulta. Es por ello que, para leer las filas de una consulta SQL, se usa generalmente un ciclo while, basndonos en el principio de que, al terminar de leer todas las filas y volver a llamar a la funcin mysql_fetch_assoc(), sta devolver false, lo cul determiar el fin del ciclo. Existen otras funciones similares, como mysql_fetch_row(), que devuelve los datos con ndices numricos (array numrico); mysql_fetch_array(), que devuelve un array que es a la vez asociativo y numrico (array mixto); y mysql_fetch_object(), que devuelve un objeto en vez de un array. En el ejemplo anterior habamos hecho la consulta SQL y ya tenamos el recurso $query para trabajar sobre esa consulta. Ahora veamos el cdigo con el cul recogemos las filas:
while($fila = mysql_fetch_assoc($query)) { echo 'El comentario #' . $fila['id'] . ' escrito por ' . $fila['nombre'] . ' ( ' . $fila['email'] . ') es spam<br>'; }

Si te fijas en el ejemplo, en cada ciclo creamos un array $fila que contiene los datos de la fila correspondiente a ese ciclo. Como estamos usando mysql_fetch_assoc(), obtenemos un array asociativo, esto quiere decir que los ndices del array son los nombres de los campos de la tabla en la base de datos. Usando la tabla que especificamos al inicio, con esta consulta obtendremos lo siguiente:
El comentario #9 escrito por Brenda (brenda@proveedor.tld) es spam El comentario #6 escrito por Mara (maria@proveedor.tld) es spam El comentario #5 escrito por Miguel (miguel@proveedor.tld) es spam

Es importante que notes que, en la condicin del while no hacemos una comparacin (== ===), sino una asignacin (=). En la prctica, la asignacin $variable = false devuelve en su conjunto false, y como ya mencionamos, al llegar al final de los resultados la funcin mysql_fetch_assoc() devuelve false. Por eso es que el ciclo funciona.

Calcular el nmero de filas


Muchas veces queremos saber cuntas filas ha devuelto nuestra consulta. Para hacerlo tenemos a nuestra disposicin la funcin mysql_num_rows(), que nos dir este valor: 40

$total = mysql_num_rows($query); if($total == 0) { echo 'La consulta no devolvi ningn resultado'; } else { echo 'La consulta devolvi ' . $total . '$filas'; // Podemos mostrar aqui los resultados (while...) }

Obtener un dato especfico


Mencionemos tambin que podemos obtener el dato de un campo dentro de un registro o fila especfico. Para eso usamos la funcin mysql_result(). La sintaxis bsica es:
mysql_result(recurso, fila, campo);

El recurso es el resultado devuelto por la llamada a mysql_query(), la fila es el nmero de fila que queremos extraer (Recordemos que la primera fila es cero!), y como parmetro opcional campo debemos indicar el nombre o nmero del campo deseado si en nuestra consulta solicitamos ms de una columna. Veamos algunos ejemplos tomando como base el ejemplo anterior:
echo mysql_result($query, 0, 'nombre'); // Imprime: Brenda echo mysql_result($query, 1, 'email'); // Imprime: maria@proveedor.tld echo mysql_result($query, 2); // Imprime: 5 (No escribir el campo hace que se tome el valor del primer campo, en este caso id) echo mysql_result($query, 0, 2); // Imprime: brenda@proveedor.tld (El campo #2 es 'email' {tercer campo})

Liberando la memoria
Podemos usar mysql_free_result() para liberar la memoria usada por la consulta SELECT actual. Sin embargo, no es necesario hacerlo a menos que estemos trabajando con un montn muy grande (demasiado grande) de datos.
mysql_free_result($query)

INSERT: Insertar datos


Para insertar datos podemos usar la sentencia INSERT. Esta sentencia tiene dos sintaxis bsicas, de las cules la primera es la ms usada y conocida:
INSERT INTO tabla (campo1, campo2, ...) VALUES ('valor1', 'valor2', ...) INSERT INTO tabla SET campo1 = 'valor1', campo2 = 'valor2', ...

El siguiente ejemplo muestra cmo podramos insertar nuevos datos a nuestra tabla de ejemplo:
$sql = "INSERT INTO comentarios (nombre, email, comentario, estado) VALUES ('lex', 'alex@proveedor.tld', 'Comentario de lex', 'publicado')";

41

mysql_query($sql);

A diferencia de la sentencia SELECT, mysql_query() no retornar un recurso cuando se ejecuta una sentencia INSERT. En su lugar retornar el valor booleano true si la consulta se ejecut con xito, y false en el caso contrario. Es posible agregar varias filas usando la misma consulta, slo hay que separar los grupos VALUES con comas, de la siguiente forma:
$sql = "INSERT INTO comentarios (nombre, email, comentario, estado) VALUES ('Johanny', 'johanny@proveedor.tld', 'Comentario de Johanny', 'publicado'), ('Mayra', 'mayra@proveedor.tld', 'Comentario de Mayra', 'publicado'), ('Xiomara', 'xiomara@proveedor.tld', 'Comentario de Xiomara', 'publicado') "; mysql_query($sql);

Podemos usar, adicionalmente, la funcin mysql_affected_rows() para saber cuntas filas se insertaron tras la ejecucin de la consulta:
echo 'Se insert ' . mysql_affected_rows() . ' nuevos registros';

Por ltimo, podemos omitir el especificar los nombres de los campos de la tabla a la cul queremos insertar los datos, pero en los grupos VALUES tendremos que implcitamente hacer referencia a ellos. Vale decir, el primer valor ir al primer campo, el segundo ir al segundo campo, y as sucesivamente:
$sql = "INSERT INTO comentarios VALUES (NULL, 'Patty', 'patty@proveedor.tld', 'Comentario de Patty', 'publicado')"; mysql_query($sql);

Nota que el valor NULL corresponde al campo id, y le asignamos un valor nulo porque al ser un campo auto_increment su valor va aumentando automticamente al crear nuevos registros.

UPDATE: Modificar registros


Para actualizar registros en la base de datos hacemos uso de la sentencia UPDATE. Su sintaxis bsica es:
UPDATE tabla SET campo1 = 'valor1', campo2 = 'valor2', ... WHERE campoA = 'valorA' AND campoB = 'valorB' AND ...

En este caso definimos una clasula WHERE para indicarle al servidor qu filas son las que deseamos modificar. Puede ser una nica fila, o mltiples filas, siempre que cumplan con los criterios establecidos.
$sql = "UPDATE comentarios SET comentario = 'Este comentario ha sido marcado como spam' WHERE estado = 'spam'"; mysql_query($sql);

42

En este ejemplo vamos a modificar el valor del campo comentario de nuestra tabla para todos los registros cuyo campo estado tenga como valor spam, y les vamos a asignar el valor textual 'Este comentario ha sido marcado como spam'. Al iguul que en el caso de INSERT, la funcin mysql_query() no retorna un recurso, sino un valor booleano. Y tambin aqu podemos usar la funcin mysql_affected_rows() para obtener el nmero de filas modificadas por la consulta. En nuestro ejemplo:
echo 'Se han modificado ' . mysql_affected_rows() . ' filas';

Y en este caso nos dira que se han modificado 3 (las 3 que tienen como estado spam).

DELETE: Borrar registros


Finalmente, la ltima sentencia que vamos a ver es la sentencia DELETE. Su sintaxis es:
DELETE FROM tabla WHERE campo1 = 'valor1' AND campo2 = 'valor2' AND ...

Y tambin aqu podemos usar la funcin mysql_affected_rows() para determinar el nmero de filas eliminadas de la tabla con la ejecucin de la consulta. Ejemplo:
$sql = "DELETE FROM comentarios WHERE estado = 'eliminado'"; mysql_query($sql); echo 'Se han eliminado ' . mysql_affected_rows() . ' registros';

Con este ejemplo, estamos eliminando de la tabla comentarios todas las filas cuyo campo estado tenga el valor de eliminado, que en total son 3 filas.

Como has visto a lo largo de este manual, desde PHP podemos controlar todos los datos existentes en nuestra base de datos. Usando formularios y tomando los datos introducidos podemos crear muchas aplicaciones dinmicas, como blogs, sistemas de comentarios, o sistemas de noticias. Las 4 sentencias vistas son las sentencias bsicas del lenguaje SQL, pero hay muchas ms que hacen ms sencillo todava el trabajar con bases de datos. Te invito a que investigues y leas un poco sobre todas ellas.

43

You might also like