You are on page 1of 35

Aprende PHP/MySQL fcilmente

Adrin Barredo Cordn Email: adribprogramador@gmail.com

2009 Adrin Barredo Cordn. Todos los derechos reservados.

ndice
Introduccin a PHP Nuestro primer cdigo PHP Las variables Operadores
o Aritmticos Incremento/decremento Concatenacin Comparacin Lgicos Nivel de bit

pgina

3 3 4 5 6 7 8 8 9 9 13 13 14 15 16 17 18 20 21 21 22 23 23 24 24 26 26 27 28

o o o o o

Condicional IF Bucles
While o DoWhile o For o

Variables $_POST y $_GET Arrays Manejo de cadenas Funciones MySQL o Crear bases de datos o Consultar bases de datos
Insertar registros Modificar registros o Borrar registros o o

Cookies Envo de email FIN Bibliografa APNDICE

Introduccin a PHP
PHP es un lenguaje de programacin del lado del servidor, lo que significa que el cdigo lo interpreta el servidor y no el navegador del usuario. El cdigo php, una vez interpretado es enviado al navegador del visitante en forma de HTML, imagen, de documento .doc, .pdf, as pues el navegador nunca accede al cdigo fuente de la pagina en php sino a su resultado en HTML.

Funcionamiento de PHP

Es un lenguaje de programacin clsico, ya que usa variables, sentencias condicionales, bucles, funciones Su funcionamiento es parecido al de JavaScript o C, para aquellos que conozcan estos lenguajes. Pero a diferencia de Java o JavaScript que se ejecutan en el navegador, PHP nos permite acceder a bases de datos del servidor Al interpretarse el cdigo en el servidor, para ir probando los ejemplos que irs viendo a lo largo de este libro, debers subirlo a un servidor web, que acepte php.

Nuestro primer cdigo PHP


El cdigo php se puede colocar en medio de cdigos en oros lenguajes ya sea HTML o JavaScript, etc. Vamos a probar nuestro primer cdigo en php, para empezar escribiremos uno sencillito:
Cdigo: <html> <head> <title>Ejemplo de cdigo PHP</title> </head> <body> <br><br> <?php echo Hola Mundo; ?> </body> </html>

Como se puede observar se intercala el cdigo HTML con el php. Para iniciar el cdigo php escribimos <?php o en algunas versiones de php tambin admite <?, para finalizarlo debemos usar ?>. (En otras versiones se puede usar tambin <% y %> o <script language="php"> y </script> Tambin podemos ver la sentencia echo, la cual muestra en pantalla el texto entre comillas, en este caso Hola Mundo. Tambin muy importante que todas las lneas de cdigo acaben en ; (punto y coma).

Las variables
Las variables se usan para contener valores que pueden ir cambiando o no. Las variables se definen anteponiendo el smbolo $.

Tipos:
Variables numricas Almacenan cifras Enteros $entero=2002; Numeros sin decimales Real $real=3.14159; Numeros con o sin decimal Variables alfanumricas Almacenan textos compuestos de nmeros y/o cifras Cadenas Almacenan variables alfanumricas $cadena="Hola amigo"; Tablas Almacenan series de informaciones numricas y/o alfanumricas $sentido[1]="ver"; $sentido[2]="tocar"; Arrays Son las variables que guardan las tablas $sentido[3]="oir"; $sentido[4]="gusto"; $sentido[5]="oler"; PHP soporta ocho tipos primitivos: Cuatro tipos escalares: boolean (Contiene verdadero o falso) integer (Nmero entero) float (Nmero de punto-flotante, tambin conocido como 'double') string (Contiene una cadena de texto) Dos tipos compuestos: array object Y finalmente dos tipos especiales: resource NULL Tambin algunos pseudo-tipos por razones de legibilidad: mixed number 4

callback Vamos a probar el uso de las variables en un pequeo cdigo php.


Cdigo: <?php ?>
$nombre = Antonio; echo $nombre;

En este fragmento de cdigo primero asignamos a la variable $nombre la cadena Antonio, y despus usamos la sentencia echo para mostrar el contenido de la variable $nombre.

Operadores aritmticos
Los smbolos de operadores con variables son:

Smbolo
+ * / %

Suma Resta Multiplicador Divisor Resto

Operador

Ejemplos:

Suma
<?php $a = 1; $b = 2; $c = $a + $b;

?>

Aqu la variable $a toma el valor 1 y $b toma el valor 2, como nmeros enteros, por lo tanto al asignarle a $c el valor de $a + $b, $c contiene la suma de 1 + 2. Por lo tanto al indicar que nos muestre el valor de $c nos mostrar 3.
<?php $a = 1; $b = 2; $c = $a + $b; echo $c;

?>

Resta
<?php $a = 1; $b = 2; $c = $a - $b;

?>

Este caso es similar a la suma ya que lo nico que cambia es que en vez de asignar a $c el valor de la suma de $a y $b se le asigna el valor de la resta. En este caso ya no mostrar 3 sino -1;
<?php $a = 1; $b = 2; $c = $a - $b; echo $c;

?>

Resto
<?php $a = 9; $b = 2; $c = $a % $b;

?>

Aqu la variable $a toma el valor 9 y $b toma el valor 2, como nmeros enteros, por lo tanto al asignarle a $c el valor de $a % $b, $c contiene el resto de la divisin 9 entre 2. Por lo tanto al indicar que nos muestre el valor de $c nos mostrar 1. El caso de la multiplicacin y el de la divisin son similares a estos tres ejemplos.

Operadores de incremento/decremento
++$a $a++ --$a $a-Incrementa $a en uno y despus devuelve $a. Devuelve $a y despus incrementa $a en uno. Decrece el valor de $a en uno y despus devuelve $a. Devuelve $a y despus decrece su valor en uno.

<?php $a = 1; $a++; echo $a; ?>

En este caso $a no nos muestra 1 sino 2, ya que $a++, es como poner $a + 1, esta abreviacin la suelen utilizar la mayora de programadores. Y con este ejemplo creo que todos podemos deducir que $a-- es como $a -1.

Operador de concatenacin
Usando el smbolo del . punto podemos unir valores:
<?php $nombre = "Antonio"; $apellido = "Prez"; $id = $nombre." ".$apellido; // suma los dos valores mas un espacio ?>

As, la variable $id contiene una cadena de texto con el nombre completo Antonio Prez. Adems de unir el nombre con el apellido hemos conseguido poner un espacio entre ellos.

El operador .= asigna un dato al valor anterior:


<?php $id = "Jorge"; $id .= " Prez";

// $id es ahora Jorge Prez


?>

Adems habrs podido observar el texto // $id es ahora jorge Prez eso es un comentario, para empezar un comentario debe ponerse // (Dos barras inclinadas), o sino tambin puede usarse /* par empezar y */ para finalizar el comentario.

Ejemplos: <?php

// Esto es un comentario de una lnea //Son comentarios de una sola lnea, pero puedes poner todos los que quieras. /* Esto es un comentario de varias lneas. Tantas como quieras. 7

*/
?>

Operadores de Comparacin
$a == $b (igualdad). Cierto si $a es igual a $b. $a === $b (identidad). Cierto si $a es igual a $b y si son del mismo tipo. $a != $b (desigualdad). Cierto si $a no es igual a $b. $a < $b (menor que). Cierto si $a es menor que $b. $a > $b (mayor que). Cierto si $a es mayor que $b. $a <= $b (menor o igual que). Cierto si $a es menor o igual que $b. $a >= $b (mayor o igual que). Cierto si $a es mayor o igual que $b.

Operadores Lgicos

$a and $b Y: Cierto si tanto $a como $b son ciertos. $a or $b O: Cierto si $a o $b son ciertos. $a xor $b O exclusiva: Cierto si $a es cierto o $b es cierto, pero no ambos a la vez. ! $a Negacin: Cierto si $a no es cierto. $a && $b Y: Cierto si tanto $a como $b son ciertos. $a || $b O: Cierto si $a o $b son ciertos.

Operadores a nivel de bit

Los operadores bit a bit te permiten activar o desactivar bits individuales de un entero. $a & $b Y Se activan los bits que estn activos tanto en $a como $b. $a | $b O Se activan los bits que estn activos en $a o que lo estn en $b. $a ^ $b Xor ("o exclusiva") Se activan los bits que estn activos en $a o en $b pero no en ambos a la vez.

~ $a No Se activan los bits que no estn activos en $a. $a << $b Desplazamiento a la izquierda Desplaza los bits de $a, $b posiciones hacia la izquierda (por aritmtica binaria, cada posicin desplazada equivale a multiplicar por dos el valor de $a). $a >> $b Desplazamiento a la derecha Desplaza los bits de $a, $b posiciones hacia la derecha (por aritmtica binaria, cada posicin desplazada equivale a dividir entre dos el valor de $a).

Condicional IF
El condicional if, es lo que en castellano seria el si condicional, su funcin es ejecutar una o varias lneas de cdigo en el caso de que se cumpla condicin, la estructura es la siguiente: En una lnea If (condicin) Cdigo que se quiere ejecutar si se cumple la condicin; O en varias lneas: If (condicin) { Cdigo que se quiere ejecutar si se cumple la condicin; }

Ahora veremos varios ejemplos de cdigo usando el condicional if junto con los operadores lgicos y los operadores de comparacin.

Ejemplos: <?php If ($a==$b) { echo Las dos variables son iguales.; } ?>

Se mostrar el texto Las dos variables son iguales. En el caso de que la condicin $a igual a $b sea cierta.
<?php If (($a==$b) and ($c == $d)) {

echo Las dos variables son iguales.; } ?>

En este caso, se mostrar el texto Las dos variables son iguales. En el caso de que la condicin $a igual a $b sea cierta y que adems sea cierta la condicin $c igual a $d. Las condiciones junto con los bucles son la base principal de toda aplicacin web programada en php, ya que da una cierta inteligencia al programa para tomar decisiones segn los valores de las variables. Aparte del if, es muy importante el uso del else y elseif, la traduccin del else seria algo as como sino Lo que quiere decir que si no se cumple la condicin del if al que va asociado, se ejecutara el cdigo del else. Su estructura es: if (Condicin) { Instruccin 1; Instruccin 2; } else { Instruccin A; Instruccin B; } En este caso, si la condicin es cierta se ejecutar la instruccin 1, 2 Pero si la condicin es falsa se ejecutara la instruccin A, B

Ejemplo: <?php $a = 1; $b = 2; If ($a==$b) { echo Las dos variables son iguales.; } else { echo Las dos variables NO son iguales.; } ?>

10

En este cdigo mostrar Las dos variables NO son iguales. ya que $a y $b no son iguales por lo tanto la condicin del if es falsa y se ejecuta el contenido del else. Adems los else y los if se pueden anidar o anillar, es decir, que se puede poner un if como contenido de otro if o de un else .
Ejemplo: <?php $a = 1; // Primera $b = 2; // Segunda $c = 3; // Tercera If ($a>$b) { If ($a>$c) { echo La primera es la ms grande.; } else { echo La tercera es la ms grande.; } } else { If ($b>$c) { echo La segunda es la ms grande.; } else { echo La tercera es la ms grande.; } } ?>

De este modo se pueden introducir tantas condiciones como se quiera dentro de la condicin principal. Una variante de este sistema es utilizando la sentencia elseif, que permite en una sola lnea introducir una condicin adicional: if (Condicion 1) { Instruccin 1; Instruccin 2; } elseif (Condicion 2) { Instruccin A; Instruccin B; 11

} else { Instruccin X; Instruccin Z; } Aqu en caso de que la condicin 1 sea cierta se ejecutarn las instrucciones 1, 2 si la condicin 1 es falsa pero la condicin 2 es cierta, se ejecutarn las instrucciones A, B y por ltimo, si las dos condiciones son falsas se ejecutar el contenido del else, en este caso las instrucciones X, Z Para las condiciones tener en cuenta que disponemos de los operadores: == != >= > <= < Igual que... Distinto de Mayor o igual que Mayor que Menor o igual que Menor que

Ahora veremos el ejemplo anterior pero usando elseif y adems con algunas pequeas modificaciones para optimizar el cdigo.

Ejemplos: <?php $a = 1; // Primera $b = 2; // Segunda $c = 3; // Tercera If (($a>$b)and($a>$c)) { echo La primera es la ms grande.; } elseif (($b>$a)and($b>$c)) { echo La segunda es la ms grande.; } elseif (($c>$a)and($c>$b)) { echo La tercera es la ms grande.; }

12

else { echo Una o ms tienen el mismo valor.; } ?>

Bucles
Muchas veces necesitaremos ejecutar un mismo cdigo con pequeas variaciones, o completamente igual un gran numero de veces, para no tener que repetir el mismo cdigo, usamos los bucles, los cuales nos permiten con pocas lneas realizar una misma tarea. Existen varios tipos de bucle en php:

While
Este es el bucle ms sencillo y el ms utilizado. Su funcin es realizar lo que indica el cdigo que contiene mientras la condicin sea cierta. Lo primero que realiza es comprobar que la condicin es cierta y despus la ejecutando el cdigo hasta que la condicin sea falsa. Su estructura es la siguiente:
While(condicin) { instruccion1; instruccion2; instruccion3;

...
}

Ejemplo: <?php $a = 0; While ($a<3) { echo Lnea nmero: .$a; $a++; } ?>

Este cdigo escribir: Lnea nmero: 0 Lnea nmero: 1 Lnea nmero: 2

13

Ya que primero comprobar que $a sea menor que 3 y despus si es cierta esa condicin mostrar el texto Lnea nmero: seguido del nmero de lnea.

Do...While
El bucle dowhile es similar al while con la diferencia que este ejecuta el cdigo por lo menos una vez, ya que primero lo ejecuta una primera vez y despus comprueba si la condicin es cierta, en caso de ser cierta, repite el contenido del bucle una y otra vez hasta que la condicin sea falsa. Su estructura es: do { sentencia; sentencia; . . . sentencia; } while (condicin);
Ejemplo: <?php $i = 5; $n = 1; do { $n = $n * $i; $i--; }while($i > 1); echo "5! es igual a: ".$n; ?>

La explicacin del ejemplo es casi tan sencilla como el propio ejemplo, lo primero es asignar a $i el valor 5 y a $n el valor 1, lo siguiente iniciar el bucle. El bucle multiplica el contenido de $n por el contenido de $i (1 * 5) y asigna el producto resultante a $n, por lo que ahora $n contendr el valor 5. Tras esto le restamos 1 al valor de $i por lo que $i ahora valdr 4. Ahora el bucle comprueba la condicin que $i sea mayor que 1, como $i vale 4 la condicin es cierta y se repite el bucle, y as sucesivamente hasta que $i sea igual a 1, entonces la condicin de que $i sea mayor que 1 ya no se cumplir, y el bucle se detendr.
Un ejemplo ms: <?php $i = 0; do { echo "Esto solo se mostrar una vez ya que la condicin es falsa."; }while($i > 1); ?>

Aunque la condicin es falsa como la condicin se comprueba al final del bucle, el cdigo se ejecuta una vez, as pues el bucle solo se repetir una vez.

14

For
Este es mi bucle favorito ya que con l se puede realizar cualquier cosa, es muy flexible y permite multitud de combinaciones. Su estructura es: En una lnea for (inicializacin; condicin; actualizacin) sentencia; O en varias lneas: for (inicializacin; condicin; actualizacin) { sentencia1; sentencia2; }
Ejemplo: <?php for ($i=0;$i==10;$i++) { echo $i.,; } ?>

Este cdigo mostrar: 0,1,2,3,4,5,6,7,8,9,10 La explicacin es la siguiente, primero, dentro del bucle se le asigna a la variable $i el valor 0, se comprueba la condicin, como $i no es igual a 10 se repetir el bucle hasta que la condicin sea cierta, por lo tanto, ahora se ejecuta el cdigo que muestra 0, y despus se le suma 1 al valor de $i y se repite el bucle si $i no es igual a 10 y as sucesivamente. Otra versin factible del ejemplo anterior es:
<?php for ($i=0;$i==10;) { echo $i.,; $i++; } ?>

Como vemos hemos movido la funcin de sumar 1 al valor de $i al final del cdigo en vez de tenerlo en la cabecera del bucle, no hay ningn problema con hacer esto. Tambin podramos haber asignado el primer valor de $i antes del bucle en vez de hacerlo en el propio bucle.

15

Variables $_POST y $_GET


Las variables $_GET son las variables que se pasan por url, esto nos permitir pasar variables de una pgina a otra, sin necesidad de formulario, nicamente indicndolo en la url de la pgina. Un ejemplo, creamos una pgina php con el siguiente cdigo:
<?php $year = $_GET[year]; if ($year>=18) { echo Eres mayor de edad, tienes: .$year. aos.; } else { echo Eres menor de edad, tienes: .$year. aos.; } ?>

Para ver el resultado de este ejemplo debemos subir esta pgina al servidor web, y entrar de la siguiente manera: http://www.tudominio.com/pginadeejemplo.php?year=16 Sustituyendo tudominio.com por el nombre de tu dominio o posting, y pginadeejemplo.php por el nombre de la pgina donde hayas escrito el cdigo de ejemplo. Como podemos observar, para pasar el valor a la variable, debemos escribir despus del .php un smbolo de interrogacin ? y el nombre de la variable, un smbolo de = y el valor que le queremos dar a la variable. Las variables $_POST son las que se envan atravs de los formularios, por lo que para poder enviar una o varias variables $_POST debemos crear un formulario, para poder poner un ejemplo, primero pondr un ejemplo de formulario escrito en HTML.
Cdigo formulario:

<form id="form" name="form" method="post" action="pagina2.php">


<label>Nombre: <input type="text" name="nombre" id="nombre" /> </label> <label> Pass: <input type="text" name="apellido" id="apellido" /> </label> <label> <input type="submit" name="enviar" id="enviar" value="Enviar" /> </label>

</form> Es formulario lo colocaremos en una nueva pagina.php, y en la segunda pgina, la cual llamaremos pagina2.php colocaremos el siguiente cdigo:
<?php $nombre = $_POST[nombre];

16

$apellido = $_POST[apellido]; echo Hola, .$nombre. .$apellido; ?>

Este cdigo lo que har es recibir las variables $_POST enviadas por los campos de texto del formulario y guardarlas en las variables $nombre y $apellido, despus muestra el texto Hola, tunombre tuapellido.

Arrays
Ahora empezaremos con el uso de arrays, un array es una variable que est compuesta de varios elementos cada uno de ellos catalogado dentro de ella misma por medio de una clave. Para explicar como funcionan usaremos un ejemplo muy comn.
Ejemplo: <?php $sentido[1] = vista; $sentido[2] = olfato; $sentido[3] = odo; $sentido[4] = gusto; $sentido[5] = tacto; $i = 1; While($i < 6){ echo $sentido[$i]; $i++; } ?>

El cdigo anterior muestra el funcionamiento de un array, su funcionamiento es simplemente asignar el valor 1 a la variable $i para que se muestre $sentido[1], despus suma 1 al valor de $i y repite el cdigo mostrando $sentido[2], y as sucesivamente hasta que $i valga 6 y ya no muestre nada ni se repita ms el bucle. Los arrays no solo pueden tener nmero como clave, sino que la clave puede ser una cadena de texto, lo nico que deberemos entrecomillarla:
<?php

$moneda["europa"] = "Euro"; $moneda["londres"] = "Libra esterlina"; $moneda["usa"] = "Dolar";


?>

Otra forma de definir idnticamente este mismo array y que nos puede ayudar para la creacin de arrays ms complejos es la siguiente sintaxis:
<?php

$moneda = array("europa"=> "Euro","londres" => "Libra esterlina","usa" => "Dolar");


?>

Manejo de cadenas

17

Algo muy til en la creacin de multitud de programas en lenguaje php es el manejo y tratamiento de cadenas, existe una gran variedad de funciones para el manejo de cadenas, las ms usadas son: strlen(cadena). Nos devuelve el nmero de caracteres de una cadena. split(separador,cadena). Divide una cadena en varias usando un carcter separador. sprintf(cadena de formato, var1, var2...). Formatea una cadena de texto al igual que printf pero el resultado es devuel to como una cadena. substr(cadena, inicio, longitud). Devuelve una subcadena de otra, empezando por inicio y de longitud. chop(cadena). Elimina los saltos de lnea y los espacios finales de una cadena. strpos(cadena1, cadena2). Busca la cadena2 dentro de cadena1 indicndonos la posicin en la que se encuentra. str_replace(cadena1, cadena2, texto). Reemplaza la cadena1 por la cadena2 en el texto.

Ahora veremos ejemplos de las funciones anteriores :


<?php $cadena = 'abcdef'; echo strlen($cadena); // Nos devolver 6 $cadena = ' ab cd '; echo strlen($cadena); // Nos devolver 7 ?> <?php $cadena = 'Juan compra palomitas.'; echo split( ,$cadena);
/* $cadena[0] = Juan $cadena[1] = compra $cadena[2] = palomitas. */

$cadena = 'Juan:voy a comprar palomitas.'; echo split(:,$cadena);

/* $cadena[0] = Juan $cadena[1] = voy a comprar palomitas. */

?>

18

<?php $cadena = 'Juan compra palomitas.'; echo substr($cadena,0,4); // Nos devolver Juan $cadena = 'Juan compra palomitas.'; echo substr($cadena,5,16); // Nos devolver compra palomitas $cadena = 'Juan compra palomitas.'; echo substr($cadena,-10);
/* Nos devolver palomitas, Como podemos ver hemos puesto el inicio en -10 lo que har que empiece a cortar desde 10(empezando a contar por atrs) y desde ah cortara hasta el final de la cadena. */

?>

<?php $cadena = 'Juan compra palomitas.'; echo strpos($cadena,compra); // Nos devolver 5 ?> <?php $cadena = 'Juan compra palomitas.'; echo str_replace(palomitas,arroz,$cadena);
// Nos devolver Juan compra arroz.

?>

Funciones
En php podemos crear nuestras propias funciones, lo que nos facilita mucho el trabajo ya que podemos agrupar muchas instrucciones o tareas en un solo comando. Por ejemplo en vez del tener que escribir, cada vez que lo necesitemos, el cdigo:
<?php $a = 4; $b = 6; $media = ($a+$b)/2; echo $media; // Nos muestra 5

?>

Podemos crear una funcin para abreviarlo:


<?php function media($a,$b) { $media = ($a+$b)/2; return $media;

} $a = 4; $b = 6; media($a,$b) ;

19

?>

Con esta nueva funcin, cada vez que necesitemos la media solo deberemos escribir el siguiente cdigo:
<?php ?> echo media(4,6); // Nos muestra 5

Para poder usar este cdigo, primero deberemos haber escrito primero la funcin anterior, ya que si la funcin media() no esta declarada, este ltimo cdigo no funcionar. Tambin podemos hacer referencia a funciones que por ejemplo, estn en otra pgina. El sistema seria el siguiente, si tenemos las funciones declaradas en nuestra pgina llamada funciones.php y queremos llamar a una de las funciones en la pgina index.php para ello en la pgina escribiremos el cdigo:
<?php include(funciones.php);
/* De esta manera llamamos a las funciones de la pgina funciones, que se encuentra en el mismo directorio que nuestra pgina index.php */

?>

Crear la base de datos MySQL


Para realizar muchas de las aplicaciones que se distribuyen por Internet programadas en php, se utiliza una base de datos. Usar una base de datos te permitir crear muchas aplicaciones interesantes, ya que puedes crear un sistema de usuarios, guardar informacin sobre ellos, o crear un juego y que todas las variables se vayan guardando y actualizando a partir de la base de datos. O para crear una pgina dinmica tambin es muy til la base de datos. Claro que para ello necesitas que tu hosting o servidor soporte MySQL o SQL, y que disponga de la posibilidad de crear bases de datos. Para crear la base de datos MySQL, debemos usar el siguiente cdigo:
<?php $db = mysql_connect('localhost', 'nombre_mysql', 'contrasea_mysql') or die("No se puede establecer la conexin con la base de datos"); $consulta = "CREATE DATABASE nombre_base_de_datos"; if (mysql_query($db, $consulta)) } echo "<p>Base de datos creada correctamente.</p>"; }else{ echo "<p>Error al crear la base de datos.</p>"; } ?>

En este cdigo es necesario sustituir localhost, por el nombre del servidor MySQL (algunos servidores admiten dejar localhost), nombre_mysql, por el nombre de usuario de tu MySQL, y contrasea_mysql por la contrasea del MySQL. Y por ltimo nombre_base_de_datos por el nombre que le quieres poner a la base de datos.

20

Tras esto la base de datos estar creada, pero an queda crear las tablas donde se guardar la inforamacin. Para crear las tablas usaremos el siguiente cdigo:
<?php $db = mysql_connect('localhost', 'nombre_mysql', 'contrasea_mysql') or die("No se puede establecer la conexin con la base de datos"); $consulta = "CREATE TABLE nombre_tabla ( ID int(11) DEFAULT '0' NOT NULL auto_increment, Nombre varchar(100), Apellidos varchar(100), PRIMARY KEY (ID), UNIQUE ID (ID) ); "; if (mysql_query($db, $consulta)) } echo "<p>Tabla creada correctamente.</p>"; }else{ echo "<p>Error al crear la tabla.</p>"; } ?>

En este ejemplo podemos observar como con la funcin MySQL_connect se conecta a la base de datos, y despus hace una consulta, en la que crea la tabla, para ello sustituiremos nombre_tabla, por el nombre que queramos dar a la tabla. Despus podemos ver que creamos 3 campos: ID, Nombre y Apellidos, y adems los otros valores como PRIMARY KEY (ID) lo que hacen es asignar ID como clave primaria, estos son unos conceptos que an no explicar. Pero si quisiramos aadir ms campos de texto solo deberamos poner debajo de Apellidos varchar(100), otros campos, ejemplo: Pais varchar(100), o tambin podemos cambiar el nombre de los campos ya creados, eso si, todos los varchar son considerados como texto. No es aconsejable, por no decir que esta prohibido, poner caracteres extraos como nombres de campos, as pues no pondremos acento a pas. Si quisiramos tratarlo como nmero deberamos sustituir varchar(100) por int(11) o bigint(20). La diferencia entre int y bigint es que bigint puede contener nmeros ms grandes, pero hasta 429.4967.295 o as con int basta.

Consultas a la base de datos MySQL


Las consultas a la base de datos se utilizan para pedirle datos a esta, ya sea el nombre de un usuario, una contrasea, un email, el precio de un producto, etc. El cdigo para realizar una consulta es muy fcil:
<?php mysql_connect('localhost', 'nombre_mysql', 'contrasea_mysql'); mysql_select_db("nombre_base_de_datos"); $result = mysql_query("select * from nombre_tabla"); $dato1 = mysql_result($result,0,nombre_del_campo); ?>

Como vemos primero conectamos al servidor de la base de datos, despus seleccionamos la base de datos, y enviamos una consulta (query) pidiendo todos los datos de la tabla, despus guardamos en la variable $dato1 (puedes ponerle el nombre que quieras.) el

21

resultado de MySQL_result que de entre los resultados de la consulta $result, selecciona el primer dato que haya en el campo nombre_del_campo. Tambin podramos seleccionar algunos campos y solo de un usuario en concreto. Ahora veremos un ejemplo en una base de datos que sirve como agenda.
Ejemplo: <?php mysql_connect('sql13.mysql.com', 'root', '123'); mysql_select_db("agenda"); $datos = mysql_query("select email, telefono, apellido from cuentas Where nombre=Juan"); $email = mysql_result($datos,0,email) ; //Contiene el email de Juan $telefono = mysql_result($datos,0,telefono); //Contiene el telfono de Juan $apellido = mysql_result($datos,0,apellido); //Contiene el apellido de Juan ?>

Insertar registro en MySQL


Insertar un registro en el MySQL nos sirve para aadir informacin a la base de datos, para poder recuperarlos luego. El cdigo necesario para poder insertar datos es el siguiente:
<?php mysql_connect('sql13.mysql.com', 'root', '123'); mysql_select_db("agenda"); $email = juan.prez@algundominio.com; mysql_query("insert into cuentas values (,Juan,Prez,$email,93123456789123)"); ?>

Como podemos observar con estas simples lneas de cdigo insertamos los datos en la base de datos, podemos ponerlos directamente (como en el caso del nombre, apellido o telfono) o a travs de una variable (como en el caso del email), debe respetarse el orden de insercin, tanto si se va a insertar un dato como sino, como por ejemplo en este caso delante de Juan hay un hueco vaco guardado para el ID, ya que tenemos este campo creado en la base de datos antes del campo de Juan, y lo dejamos en blanco ya que el ID se auto-inserta al estar asignada la funcin de autoincrement.

Modificar registro de MySQL


Adems de insertar un nuevo registro tambin necesitamos modificar los ya existentes para poder actualizar sus valores. Para ello necesitamos saber un dato del registro que queremos modificar. En el ejemplo que usaremos utilizaremos como dato el nombre de Juan y modificaremos su email.

22

<?php mysql_connect('sql13.mysql.com', 'root', '123'); mysql_select_db("agenda"); $email = juan.prez@algundominio.com; mysql_query("UPDATE cuentas set email=juan_prez@algundominio.com Where nombre=Juan"); ?>

Este cdigo lo que hace es buscar los registros donde nombre coincida con Juan, y sustituye el email que tenga, por el que le hemos indicado (si hay ms de un registro que coincida con Juan, realizar el cambio en todos). Tambin podemos buscar de una manera ms concreta, para evitar que modifique a otro Juan por error, para ello pondremos dos condiciones de bsqueda.
<?php mysql_connect('sql13.mysql.com', 'root', '123'); mysql_select_db("agenda"); $email = juan.prez@algundominio.com; mysql_query("UPDATE cuentas set email=juan_prez@algundominio.com Where nombre=Juan and apellido=Prez"); ?>

Borrar registro de MySQL


Cuando ya no necesitamos un registro o simplemente necesitamos borrarlo, esto es posible usando el cdigo:
<?php mysql_connect('sql13.mysql.com', 'root', '123'); mysql_select_db("agenda"); mysql_query("delete from agenda where nombre=Juan and apellido=Prez"); ?>

En el cdigo anterior hemos visto como borrar un registro, buscndolo por coincidencia de dos campos, ya que si solo pusiramos que borrara cuando nombre coincide con Juan nos borrara a todos los Juan que haya, en cambio solo queremos borrar a Juan Prez, por eso hemos incluido la parte de apellido= Prez.

Cookies
Las cookies contienen informacin que se guarda en el navegador y que podemos utilizar ya sea para identificar usuarios, para saber de que pas son, si han realizado una determinada accin en la web Funcionamiento La cookie es enviada al navegador desde el servidor y si este la acepta permanece en l.

23

Las pginas piden la cookie al navegador...

El navegador las enva, permitiendo la identificacin del usuario por partedel servidor.

A continuacin vamos a ver como usar las cookies para nuestro beneficio.

Usar las cookies es muy sencillo, solo debemos indicar el nombre de la cookie, el valor que contiene y cuando expirar.
Ejemplo: <?php setcookie("nombre_cookie", 'valor', time()+3600); ?>

Como podemos ver con la funcin setcookie creamos la cookie y le asignamos un nombre, un valor y en cuento tiempo expira, en este caso hemos puesto time() (funcin que devuelve el tiempo actual) y le hemos sumado 3600 segundos (1h), ya que el tiempo debe indicarse siempre en segundos. Ahora veremos un ejemplo, de cmo usar las cookies.
<?php

[]
setcookie(usuario, Juan, time()+3600); $usuario = $_COOKIE[usuario]; If($usuario!=){ echo "Hola,".$usuario; }else{ echo "Hola desconocido."; } ?>

Como se puede observar en el ejemplo para coger el valor de una cookie es tan fcil como poner $_COOKIE[nombre_de_la_coo kie], sustituyendo nombre_de_la_cookie por el nombre de la cookie que queramos. Si quieres cambiar el valor de una cookie que ya existe solo tienes que volver a usar la misma funcin con la que la creaste pero con otro valor.

24

Ejemplo: <?php setcookie("usuario", 'toni', time()+3600);//Creamos cookie usuario con valor toni setcookie("usuario", 'juan', time()+3600);/* Modificamos la cookie usuario y le
asignamos el valor de juan */ /*

?>

setcookie("usuario"); // Eliminamos la cookie usuario

Como vemos en el ejemplo, en primer lugar creamos la cookie usuario con el valor toni, pero luego le cambiamos el valor, por juan. Y por ltimo eliminamos la variable usuario, crendola de nuevo, sin valor y sin tiempo de expiracin.

Envo de email
Seguro que nos resultar muy til poder enviar emails desde una web mediante php. Para ello utilizaremos la funcin mail(), su estructura es: mail(destinatario, tema, texto del mensaje, informacin adicional de cabecera); Donde destinatario es la direccin de email al cual queremos enviar el email, el tema, es el asunto del email, el texto lo que contendr el email, y la informacin adicional de cabecera es donde se suele poner la direccin de email del remitente.
Ejemplo: <?php $texto = Hola, te envo este email para probar mi sistema de mensajeria va web. mail("email@dominio.com",'email de prueba',$texto,FROM: miemail@dominio.com); ?>

En este ejemplo vemos un cdigo muy simple en el cual se enva un email de prueba a la direccin email@dominio.com, tambin indicamos el asunto del email email de prueba, y despus ponemos el texto del mensaje, normalmente, como el texto del mensaje es muy largo, se utiliza una variable para no tener todo el texto dentro de la funcin mail(), por ltimo ponemos en el lugar de la cabecera FROM: miemail@dominio.com, esta es la direccin que le aparecer al destinatario como remitente del email.

FIN
Y bueno con eso doy por finalizado este libro de iniciacin al PHP junto con MySQL, en prximos libros explicaremos un uso ms avanzado del PHP y muchsimos ms ejemplos de cdigos muy tiles combinando PHP y MySQL.

25

Si necesitas ayuda para entender alguna parte del libro, o si tienes alguna duda sobre el cdigo que estas programando, puedo ayudarte, solo debes ponerte en contacto conmigo.

Para ms informacin pueden contactar conmigo envindome un email a: adribprogramador@gmail.com

Bibliografa

http://www.php.net/ (Ingls) En esta web podrs encontrar informacin sobre PHP, as como todas las funciones que se pueden usar el este lenguaje de programacin.

http://www.mysql.com/ (Ingls) Web sobre MySQL en ingls, aqu podris encontrar informacin relacionada con MySQL y bases de datos.

http://www.php-hispano.net/ (Espaol) Esta web esta en espaol, es una web/foro en la que la gente abre hilos de conversacin haciendo preguntas para que los expertos les contesten.

http://www.mysql-hispano.org/ (Espaol) Web sobre MySQL, aqu podris encontrar informacin relacionada con MySQL y bases de datos, pero esta vez en espaol.

http://www.apachefriends.org/es/xampp.html (Ingls) Web de xampp, de donde he extrado un tutorial, y que os he traducido al castellano. Por si no sabis que es XAMPP, sirve para crear un servidor PHP con MySQL, por si no encontris un posting con estas caractersticas.

26

APNDICE
Instalacin con el instalador
Usando el instalador es la forma ms sencilla de instalar XAMPP.

Una vez completada la instalacin, encontrar XAMPP en Inicio / Programas / XAMPP. Puede utilizar el Panel de Control de XAMPP para iniciar / detener todos los servidores y tambin instalar / desinstalar servicios.

27

Instalacin sin el instalador


Descargar y descomprimir el 7-zip o zip en la carpeta que quieras.

En este caso, nosotros descomprimimos XAMPP en D:\Program Files y obtener la carpeta: D:\Program Files\XAMPP. Despus, abrimos la carpeta XAMPP y ejecutamos el archivo "setup-xampp.bat".

28

Todas las rutas en la configuracin se actualizarn.

Por ltimo, iniciamos los diferentes servidores existentes con el start/stop archivos de proceso por lotes o utilizar la versin GUI "XAMPP-control.exe". Nota: Si usted trabaja con el instalador de la versin de XAMPP, no es necesario ejecutar "setup_xampp.bat".

Quiero ejecutar XAMPP sin configuracin


Si extraes XAMPP en la carpeta principal como c:\xampp o d:\xampp etc., puedes iniciar XAMPP directamente. Esto significa que no necesitas ejecutar "setup_xampp.bat". Apache, MySQL y Mercury Mail server arrancaran correctamente! FileZilla FTP server no se pondr en marcha porque requiere rutas absolutas.

29

Por favor nota: NO cree dobles carpetas como c:\xampp\xampp! T necesitas una nica carpeta xampp como d:\xampp(\apache y as sucesivamente). En caso contrario debe ejecutar el "setup-xampp.bat" para establecer las configuraciones de la ruta.

La prctica

Interfaz de XAMPP
Para todos los amigos de la consola (cmd) aqu la nueva construccin "xampp_cli" de Carsten Wiedmann.
Usage: xampp_cli command service

Ejemplo 1: Apache y MySQL arrancando y parando


xampp_cli start xampp xampp_cli stop xampp

Ejemplo 2: Apache instalando y eliminando servicios


xampp_cli installservice apache xampp_cli deinstallservice apache

Ejemplo 3: Mercury arrancando y parando


xampp_cli start mercury xampp_cli stop mercury

Prctica 1: Arranque, parada & probar XAMPP


Lo universal es el centro de control de control de XAMPP www.nat32.com que no est incluido en la versin Lite. .\xampp\xampp-control.exe Algunos scripts de servidor ms: Apache & MySQL start: .\xampp\xampp_start.exe Apache & MySQL stop: .\xampp\xampp_stop.exe

30

Apache start: .\xampp\apache_start.bat Apache stop: .\xampp\apache_stop.bat MySQL start: .\xampp\mysql_start.bat MySQL stop: .\xampp\mysql_stop.bat Mercury Mailserver start: .\xampp\mercury_start.bat (Mercury only GUI. Stop with GUI) FileZilla Server setup: .\xampp\filezilla_setup.bat FileZilla Server start: .\xampp\filezilla_start.bat FileZilla Server stop: .\xampp\filezilla_stop.bat Prueba: Despus de Apache se inicia, abra la URL http://localhost o http://127.0.0.1 y examinar todas las herramientas y ejemplos de XAMPP.

Prctica 2: Instalando un servidor como un servicio


Puede instalar algunos servidores como un servicio bajo estas plataformas: NT4, 2000/2003, XP y (a veces) Vista. Por lo tanto, puede usar uno de estos guiones: Apache service install: .\xampp\apache\apache_in stallservice.bat Apache service uninstall: .\xampp\apache\apache_un installservice.bat MySQL service install: .\xampp\mysql\mysql_installservice.bat MySQL service uninstall: .\xampp\mysql\mysql_uninstallservice.bat FileZilla service (un)install: .\xampp\filezilla_setup.bat Mercury: No service installation available!

Prctica 3: Instalando Addons


31

Existen muchos otros addons para el desarrollo con el paquete principal. Por el momento, el funcionario addons para win32 de este lado son los siguientes: Perl Addon con mod_perl y una importante seleccin de mdulos Perl Tomcat Addon (Requisito: Domingo J2SE SDK debe estar ya instalado) Cocoon para Tomcat Addon (Requisito: Addon de Tomcat debe estar ya instalado) Python Addon La norma recomendada para la instalacin es la siguiente: La versin del instalador de XAMPP necesidades del instalador Addon, ZIP (7-Zip) necesita el paquete postal (7-Zip) Addon. Addon para el ZIP, por favor descomprima el paquete en el directorio principal de XAMPP directamente. Despus de ejecutar el "setup_xampp.bat". Eso es todo. Addon paquete instalador hace todo automticamente. No hay nada que hacer. Nota: Todo el mundo puede construir un nuevo Addon XAMPP para su proyecto. Por ejemplo, usted encontrar algunos otros addons para XAMPP en http://sourceforge.net/projects/xamppaddon. Ejemplos de ello son accesibles a travs de la red. El usuario de mercurio y son conocidos FileZilla. Por favor, seguro XAMPP en lnea antes de publicar nada. Un firewall o un router externo slo son suficientes para que los bajos niveles de seguridad. Por un poco ms de seguridad, puede ejecutar la consola de XAMPP de Seguridad "y asignar contraseas.

Para arreglar la ms importante de las deficiencias de seguridad, simplemente llame a la siguiente direccin (slo el acceso desde localhost): Antes de la versin 1.4.15: http://127.0.0.1/xampp/xamppsecurity.php

32

Desde la versin 1.4.15: http://127.0.0.1/security La contrasea de root para MySQL, PhpMyAdmin, y tambin un directorio XAMPP proteccin puede establecerse aqu. Para Mercurio y FileZilla, recuerde cambiar los ajustes de configuracin (por ejemplo, los usuarios y contraseas). O si no necesita ninguno de estos servidores, simplemente no iniciarlos - Eso tambin es seguro.

33

You might also like