Está en la página 1de 32

TUTORIAL DE PHP Y MYSQL

Desde Cero
Copyright 2013 Csar Mayta. Derechos reservados. Prohibida la

reproduccin y/o transmisin total o parcial de este documento sin


consentimiento por escrito del autor.

Exclusin de Responsabilidad
Este reporte ha sido escrito para proveer informacin sobre INGRESA EL TOPICO
ACA. Se han hecho todos los esfuerzos posibles para que este reporte sea lo ms
exacto y adecuado posible. Sin embargo puede que existan errores ortogrficos
y/o de contenido. La informacin est actualizada a la fecha de la publicacin y
est basada en la experiencia/investigacin del autor. Por esta razn se debe
considerar como una gua nicamente.
El propsito del reporte es educativo y tanto el autor como la editorial no
garantizan que el contenido sea 100% exacto por lo que no se responsabilizan por
ningn tipo de error u omisin.
Tanto el autor como la editorial se liberan de cualquier tipo de responsabilidad a
cualquier persona o entidad por daos o prdidas causados o supuestamente
causados, directa o indirectamente por este reporte.
Si no est de acuerdo con le exclusin anterior por favor no lea y devuelva este
reporte para obtener un reembolso completo.

Aclaracin de Conexin y Divulgacin


Usted debe asumir que el autor y el editor tienen una relacin de afiliados y/o
algn otro tipo de conexin material con los proveedores de productos y servicios
mencionados en esta gua y pueden ser compensados cuando usted compre de
un proveedor. Le recomendamos informase adecuadamente sobre cualquier
producto o servicio que vaya a comprar en lnea o fuera de ella.

2
Copyright 2013

www.clubdeprogramacion.com

Mensaje del Autor


Espero que este tutorial de php y mysql
pueda servirte a entender el mundo de la
programacin web con este maravilloso
lenguaje, cada ejercicio est pensado de
forma sencilla y prctica. Espero realmente
que pueda ser de gran utilidad en tu vida
profesional.

Atte.
Csar Mayta
Autor del tutorial

3
Copyright 2013

www.clubdeprogramacion.com

Tabla de Contenido
INTRODUCCION A PHP ....................................................................................... 5
QUE ES PHP? ................................................................................................ 5
Cmo funciona PHP? ...................................................................................... 5
MI PRIMER SCRIPT.......................................................................................... 5
CONOCIENDO LA SINTAXIS DE PHP .................................................................. 6
VARIABLES: .................................................................................................... 6
CONSTANTES: ................................................................................................. 6
OPERADORES: ................................................................................................ 7
SENTENCIAS CONDICIONALES: ...................................................................... 8
SENTENCIAS CICLICAS O BUCLES: .............................................................. 10
FUNCIONES: ................................................................................................. 14
BIBLIOTECA DE FUNCIONES ........................................................................ 18
BASE DE DATOS MYSQL ............................................................................... 21
QUE ES UNA BASE DE DATOS: ..................................................................... 21
MYSQL: ......................................................................................................... 22
LENGUAJE SQL:............................................................................................ 24
INTEGRANDO PHP Y MYSQL ............................................................................ 26
CONECTAR A MYSQL DESDE PHP: ............................................................... 26
MOSTRAR TODOS LOS DATOS DE UNA CONSULTA SQL: ............................. 27
AADIR REGISTROS A NUESTRA BASE DE DATOS: ..................................... 29
MODIFICAR REGISTROS DE NUESTRA BASE DE DATOS: ............................ 30
BORRAR REGISTROS DE NUESTRA BASE DE DATOS: ................................. 32

4
Copyright 2013

www.clubdeprogramacion.com

INTRODUCCION A PHP
QUE ES PHP?

PHP es un lenguaje de script del lado del servidor.


Los scripts PHP estn incrustados en los documentos HTML y el servidor
los interpreta y ejecuta antes de servir las pginas al cliente
El cliente no ve el cdigo PHP sino los resultados que produce
Cmo funciona PHP?

A diferencia de Java o JavaScript que se ejecutan en el navegador, PHP se


ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga
el servidor como por ejemplo podra ser una base de datos. El programa
PHP es ejecutado en el servidor y el resultado enviado al navegador. El
resultado es normalmente una pgina HTML.

MI PRIMER SCRIPT

Vamos a crear un script sencillo para entender como funciona php


<HTML>
<HEAD>
<TITLE>Mi primer programa en PHP</TITLE>
</HEAD>
<BODY>
<?php echo (<P>Hola mundo</P>); ?>
</BODY>
</HTML>
Parece una pagina html comun pero lo que se encuentra dentro de los
smbolos <?php y ?> es codigo php que el servidor interpretara para
mostrar las etiquetas correspondiente

5
Copyright 2013

www.clubdeprogramacion.com

CONOCIENDO LA SINTAXIS DE PHP


Ahora aprenderemos rpidamente la sintaxis de este lenguaje, es decir
cmo se compone su lenguaje.
VARIABLES:

Las variables son espacios de memoria que sirven para almacenar datos
que pueden variar durante el progreso del programa, en PHP deben estar
precedidas por signo dlar ($), y le asignamos contenido con el signo igual
(=).
PHP distingue entre maysculas y minsculas, por lo que no es lo mismo
$myvar que $Myvar, stas son dos variables totalmente distintas.
<html>
<body>
<?php
$myvar = "SEVILLA";
$Myvar = "MADRID";
//Esto imprimir SEVILLA
echo($myvar.<br>);
//Esto imprimir MADRID
echo($Myvar.<br>);
?>
</body>
</html>
Como ven se ha utilizado dos formas de escribir echo, en maysculas y en
minsculas, para indicar que PHP no las distingue a la hora de usar
funciones o sentencias del lenguaje.
CONSTANTES:

Las constantes son similares a las variables, con la salvedad de que no


llevan el signo dlar delante, y slo la podemos asignar una vez. Para
definir una constantes usaremos la funcin define como sigue:
<html>
<body>
<?php
define ("CONSTANTE", "Hola Mundo");
printf (CONSTANTE);
6
Copyright 2013

www.clubdeprogramacion.com

?>
</body>
</html>
OPERADORES:

ARITMTICOS:
$a + $b Suma
$a - $b Resta
$a * $b Multiplicacin
$a / $b &ss=codigoenlinea>$a / $b Divisin
$a % $b Resto de la divisin de $a por $b
$a++ Incrementa en 1 a $a
$a-- Resta 1 a $a
CONCATENADORES:
La concatenacin de cadenas se maneja con el punto.
$a = "Hola";
$b = $a . "Mundo"; // Ahora $b contiene "Hola Mundo"
En este punto hay que hacer una distincin, la interpretacin que hace
PHP de las simples y dobles comillas. En el segundo caso PHP interpretar
el contenido de la cadena.
$a = "Mundo";
echo = 'Hola $a'; //Esto escribir "Hola $a"
echo = "Hola $a"; //Esto escribir "Hola Mundo&q; //Esto escribir "Hola
Mundo"
COMPARADORES:
$a
$a
$a
$a
$a
$a

< $b $a menor que $b


> $b $a mayor que $b
<= $b $a menor o igual que $b
>= $b $a mayor o igual que $b
== $b $a igual que $b
!= $b $a distinto que $b

LOGICOS:
$a AND $b Verdadero si ambos son verdadero
$a && $b Verdadero si ambos son verdadero
$a OR $b Verdadero si alguno de los dos es verdadero
7
Copyright 2013

www.clubdeprogramacion.com

$a !! $b Verdadero si alguno de los dos es verdadero


$a XOR $b Verdadero si slo uno de los dos es verdadero<BP; de verdadero
!$a Verdadero si $a es falso, y recprocamente

DE ASIGNACION:
$a
$a
$a
$a
$a
$a

= $b Asigna a $a el contenido de $b
+= $b Le suma a $b a $a
-= $b Le resta a $b a $a
*= $b Multiplica $a por $b y lo asigna a $a
/= $b Divide $a por $b y lo asigna a $a
.= $b Aade la cadena $b a la cadena $a

SENTENCIAS CONDICIONALES:

Las sentencias de control permiten ejecutar bloque de cdigos dependiendo


de unas condiciones. Para PHP el 0 es equivalente a Falso y cualquier otro
nmero es Verdadero.
IF...ELSE
La sentencia IF...ELSE permite ejecutar un bloque de instrucciones si la
condicin es Verdadera y otro bloque de instrucciones si sta es Falsa. Es
importante tener en cuenta q instrucciones si sta es Falsa. Es importante
tener en cuenta que la condicin que evaluemos ha de estar encerrada
entre parntesis (esto es aplicable a todas las sentencias de control).
if (condicin) {
Este bloque se ejecuta si la condicin es VERDADERA
} else {
Este bloque se ejecuta si la condicin es FALSA
}

Existe una forma sencilla de usar la sentencia IF cuando no tenemos que


usar el ELSE y solo tenemos que ejecutar una lnea de cdigo.
if ($a > 4) echo "$a es mayor que 4";
IF...ELSEIF...ELSE
La sentencia IF...ELSEIF...ELSE permite ejecuta varias condiciones en
cascada. Para este caso veremos un ejemplo, en el que utilizaremos los
8
Copyright 2013

www.clubdeprogramacion.com

operadores lgicos.
<?php
if ($nombre == ""){ echo "T no tienes nombre";
} elseif (($nombre=="eva") OR ($nombre=="Eva")) {
echo " echo "Tu nombre es EVA";<
} else {
echo "Tu nombre es " . $nombre;
}

SWITCH...CASE...DEFAULT
Una alternativa a IF...ELSEIF...ELSE, es la sentencia SWITCH, la cul
evala y compara cada expresin de la sentencia CASE con la expresin
que evaluamos, si llegamos al final de la lista de CASE y encuentra una
condicin Verdadera , ejecuta el cdigo de bloque que haya en DEFAULT.
Si encontramos una condicin verdadera debemos ejecutar un BREAK para
que la sentencia SWITCH no siga buscando en la lista de CASE. Veamos
un ejemplo.
<?php
switch ($dia) {
case "Lunes":
echo "Hoy es Lunes";
break;
case "Martes":
echo "Hoy es Martes";
break;
case "Miercoles":
echo "Hoy es Miercoles";
break;
case "Jueves":
echo "Hoy es Jueves";
break;
case "Viernes":
echo "Hoy es Viernes";
break;
case "Sbado":
echo "Hoy es Sbado";
break;
case "Domingo":
echo "Hoy es Domingo";
9
Copyright 2013

www.clubdeprogramacion.com

break;
default:
echo "Esa cadena no corresponde a ningn da de la semana";
}
?>
SENTENCIAS CICLICAS O BUCLES:

nos permiten iterar conjuntos de instrucciones, es decir repetir la ejecucin


de un conjunto de instrucciones mientras se cumpla una condicin.
WHILE:
La sentencia WHILE ejecuta un bloque de cdigo mientras se cumpla una
determinada condicin.
<?php
$num = 1;
while ($num < 5) {
echo $num;
$num++
}
?>
Podemos romper un bucle WHILE utilizando la sentencia BREAK.
<?php
$num = 1;
while ($num < 5) {
echo $num;
if ($num == 3){
echo "Aqu nos salimos \n";
break
}
$num++
}
?>
DO...WHILE:
Esta sentencia es similar a WHILE, salvo que con esta sentencia primero
ejecutamos el bloque de cdigo y despus se evala la condicin, por lo que
el bloque de cdigo se ejecuta siempre al menos una vez.
<?php
10
Copyright 2013

www.clubdeprogramacion.com

$num = 1;
do {
echo $num;
if ($num == 3){
echo "Aqu nos salimos \n";
break
}
$num++
} while ($num < 5);
?>
FOR:
El bucle FOR no es estrictamente necesario, cualquier bucle FOR puede ser
sustituido fcilmente por otro WHILE. Sin embargo, el bucle FOR resulta
muy til cuando debemos ejecutar un bloque de cdigo a condicin de que
una variable se encuentre entre un valor mnimo y otro mximo. El bucle
FOR tambin se puede romper mediante la sentencia BREAK.
<?php
for ($num = 1; Snum <=5; $num++){
echo $num;
if ($num == 3){
echo "Aqu nos salimos \n";
break
}
}
?>
ARRAYS:
Las tablas (o array en ingls), son muy importantes en PHP, ya que
generalmente, las funciones que devuelven varios valores, como las
funciones ligadas a las bases de datos, lo hacen en forma de tabla.
En PHP disponemos de dos tipos de tablas. El primero sera el clsico,
utilizando ndices:
<?php
$ciudad[] = "Pars";
$ciudad[] = "Pars";
$ciudad[] = "Roma";
$ciudad[] = "Sevilla";
$ciudad[] = "Londres";
print ("yo vivo en " . $ciudad[2] . "<BR>\n");
11
Copyright 2013

www.clubdeprogramacion.com

?>
Esta es una forma de asignar elementos a una tabla, pero una forma ms
formal es utilizando la funcin array
$ciudad = array("Pars", "Roma", "Sevilla", "Londres");
//contamos el nmero de elementos de la tabla
$numelentos = count($ciudad);
//imprimimos todos los elementos de la tabla
for ($i=0; $i < $numelentos; $i++)
{
print ("La ciudad $i es $ciudad[$i] <BR>\n");
}
?>
Si no se especifica, el primer ndice es el cero, pero podemos utilizar el
operador => para especificar el indice inicial.
$ciudad = array(1=>"Pars", "Roma", "Sevilla", "Londres");
Un segundo tipo, son las tablas asociativas, en las cules a cada elemento
se le asigna un valor (key) para acceder a l.
Para entenderlo, que mejor que un ejemplo, supongamos que tenemos una
tabla en al que cada elemento almacena el nmero de visitas a nuestra web
por cada da de la semana.
Utilizando el mtodo clsico de ndices, cada da de la semana se
representara por un entero, 0 para lunes, 1 para martes, etc.
$visitas[0] = 200;
$visitas[1] = 186;
si usamos las tablas asociativas sera
$visitas["lunes"] = 200;
$visitas["martes"] = 186;

o bien,
$visitas = array("luodigo">$visitas = array("lunes"=>200; "martes"=>186);
Ahora bien, recorrer una tabla y mostrar su contenido es sencillo
utilizando los ndices, pero cmo hacerlo en las tablas asociativas?. La
manipulacin de las tabas asociativas se a hace travs de funciones que
actan sobre un puntero interno que indica la posicin. Por defecto, el
puntero se sita en el primer elemento aadido en la tabla, hasta que es
movido por una funcin:
12
Copyright 2013

www.clubdeprogramacion.com

current - devuelve el valor del elemento que indica el puntero


pos - realiza la misma funcin que current
reset - mueve el puntero al primer elemento de la tabla
end - mueve el puntero al ltimo elemento de la tabla
next - mueve el puntero al elemento siquiente
prev - mueve el puntero al elemento anterior
count&n count - devuelve el nmero de elementos de una tabla.
Veamos un ejemplo de las funciones anteriores:
<?php
$semana = array("lunes", "martes", "mircoles", "jueves", "viernes",
"sbado", "domindo");
echo count($semana); //7
//situamos el puntero en el primer elemento
reset($semana);
echo current($semana); //lunes
next($semana);
echo pos($semana); //martes
end($semana)
echo pos($semana); //domingo
prev($semana);
echo current($semana); //sbado
?>
Recorrer una tabla con las funciones anteriores se hace un poco lioso, para
ello se recomienda utilizar la funcin each().
<?php
$visitas = array("lunes"=>200, "martes"=>186, "mircoles"=>190,
"jueves"=>175);
reset($visitas);
while (list($clave, $valor) = each($visitas))
{
echo "el da $clave ha tenido $valor visitas<BR>";
}
?>
La funcin each()devuelve el valor del elemento actual, en este caso, el valor
del elemento actual y su clave, y desplaza el puntero al siguiente, cuando
llega al final devuelve FALSO, y termina el bucle while().

13
Copyright 2013

www.clubdeprogramacion.com

FUNCIONES:

Muchas veces, cuando trabajamos en el desarrollo de una aplicacin, nos


surge la necesidad de ejecutar un mismo bloque de cdigo en diferentes
partes de nuestra aplicacin. Una Funcin no es ms que un bloque de
cdigo al que le pasamos una serie de parmetros y nos devuelve un valor.
Como todos los lenguaje de programacin, PHP trae una gran cantidad de
funciones para nuestro uso, pero las funciones ms gran cantidad de
funciones para nuestro uso, pero las funciones ms importantes son las
que nosotros creamos.
Para declara una funcin debemos utilizar la instruccin function
seguido del nombre que le vamos a dar, y despus entre parntesis la lista
de argumentos separados por comas, aunque tambin habr funciones que
no recojan ningn argumento.
function nombre_de_funcion (arg_1, arg_2, ..., arg_n)
{
bloque de cdigo
}
Cualquier instruccin vlida de PHP puede aparecer en el cuerpo (lo que
antes hemos llamado bloque de cdigo) de una funcin, incluso otras
funciones y definiciones de clases.
En PHP no podemos redefinir una funcin previamente declarada, y
adems en PHP3, las funciones deben definirse siempre antes de que se
invoquen, en PHP4 este requerimiento ya no existe.

LA INSTRUCCIN RETURN:
Cuando invocamos una funcin, la ejecucin del programa pasa a ejecutar
las lneas de cdigo que contenga la funcin, y una vez terminado, el
programa continua su ejecucin desde el punto en que fu llamada la
funcin.
Existe una manera de terminar la ejecucin de la funcin aunque an haya
cdigo por ejecutar, mediante el u haya cdigo por ejecutar, mediante el
uso de la instruccin return terminamos la ejecucin del cdigo de una
funcin y devolvemos un valor. Podemos tener varios return en nuestra
funcin, pero por lo general, cuantos ms return tengamos menos
reutilizable ser nuestra funcin.
14
Copyright 2013

www.clubdeprogramacion.com

<?php
function mayor ($x, $y)
{
if ($x > $y) {
return $x." es mayor que ".$y;
} else {
return $y." es mayor que ".$x;
}
}
?>
Aunque quedari mejor:
<?php
function mayor ($x, $y)
{
$msg = "";
if ($x > $y) {
$msg = $x." es mayor que ".$y;
} else {
$msg = $y." es mayor que ".$x;
}
return $msg;
}
?>
Con la instrucin return puede devolverse cualquier tipo de valor,
incluyendo tablas y objetos. PHP solo permite a las funciones devolver un
valor, y para solventar este pequeo problema, si queremos que nuestra
funcin devuelva varios tenemos que utilizar una tabla (array).
PARMETROS:
Existen dos formas de pasar los parmetros a una funcin, por valor o por
referencia.
Cuando pasamos una variable por valor a una funcin, ocurra lo que
ocurra en sta en nada modificar el contenido de la variable. Mientras que
si lo hacemos por referencia, cualquier cambio acontecido en la funcin
sobre la variable lo har para siempre.
E variable lo har para siempre.
En PHP, por defecto, las variables se pasan por valor. Para hacerlo por
referencia debemos anteponer un ampersand (&) a la variable.
15
Copyright 2013

www.clubdeprogramacion.com

<?php
function suma ($x, $y)
{
$x = $x + 1;
return $x+$y;
}
$a = 1;
$b = 2;
//parmetros por valor
echo suma ($a, $b); // imprimir 4
echo $a; // imprimir 1
//parmetros por referencia
echo suma (&$a, $b); // imprimir 4
echo $a; //imprimir 2
?>
Si queremos que un parmetro de una funcin se pase siempre por
referencia debemos anteponer un ampersand (&) al nombre del parmetro
en la definicin de la funcin.
En PHP podemos definir valores por defecto para los parmetro de una
funcin. Estos valores tienen que ser una expresin constante, y no una
variable o miembro de una clase. Adems cuando usamos parmetros por
defectos, stos deben estar a la derecha de cualquier parmetro sin valor
por defecto, de otra forma PHP nos devolver un error.
<?php
function suma ($x=1, $y)
{
$x = $x + 1;
return $x+$y;
}
?>
Si ejecutarmos esta funcin nos dara error, ya que hemos dado a $x el
valor 1 por defecto y la hemos colocado a la izquierda de un parmetro que
no tiene valor por defecto. La forma correcta es:
<?php
function suma ($y, $x=1)
{
$x = $x + 1;
return $x+$y;
}
?>
16
Copyright 2013

www.clubdeprogramacion.com

Cabe destacar que PHP3 no soporta un nmero variables de parmetros,


pero PHP4 s.
Llegados a este punto, damos un paso atrs y volvemos a las variables,
para distinguir entre variables estticas (static) y globales (global). Las
variables estticas se definen dentro de una funcin, la primera vez que es
llamada dicha funcin la variable se inicializa, guardando su valor para
posteriores llamadas.
<?php
function contador ()
{
static $count = 0;
$count = $count + 1;
return $count;
}
echo contador()."<BR>"; // imprimir 1
echo contador()."<BR>"; // imprimir 2
echo contador()."<BR>"; // imprimir 3
?>
Las variables globales, no se pueden declarar dentro de una funcin, lo que
hacemos el llamar a una variable que ya ha sido declarada, tomando el
valor que tenga en ese momento, pudiendo ser modificado en la funcin.
<?php
var $a = 1;
function ver_a()
{
global $a;
echo $a."<BR>"; // imprimir el valor de $a
$a += 1; // sumamos 1 a $a
}
echo ver_a(); // imprimir 1
echo ver_a(); // imprimir 2
$a = 7;
echo ver_a(); // imprimir 7
echo ver_a(); // imprimir 8
?>

17
Copyright 2013

www.clubdeprogramacion.com

BIBLIOTECA DE FUNCIONES:

Existen muchas bibliotecas de funciones en PHP


Algunos ejemplos:

Funciones
Funciones
Funciones
Funciones
Funciones
Funciones
Funciones

de manipulacin de cadenas
de fecha y hora
de arrays
de ficheros
matemticas
de bases de datos
de red

Algunas bibliotecas requieren la instalacin de componentes adicionales


Todas las funciones de biblioteca estn comentadas en la documentacin
de PHP

FUNCIONES DE MANIPULACIN DE CADENAS:


explode()
Divide una cadena en subcadenas
array explode (string separator, string string [, int limit])
rtrim(), ltrim(), trim()
Eliminan caracteres a la derecha, a la izquierda o por ambos lados de una
cadena
string rtrim ( string str [, string charlist])
strstr()
Busca la primera ocurrencia de una subcadena
strtolower() / strtoupper()
Convierte una cadena a minscula / mayscula
strcmp() / strcasecmp()
Compara dos cadenas con/sin distincin de maysculas
strlen()
Calcula la longitud de una cadena

18
Copyright 2013

www.clubdeprogramacion.com

FUNCIONES DE FECHA Y HORA:


date()
Formatea una fecha segn un formato dado
Ejemplo:
$fecha = date ("j/n/Y H:i");
print ("$fecha");
Resultado:
26/9/2005 17:36
strtotime()
Convierte una fecha en un timestamp de UNIX
Ejemplo:
$fecha = date ("j/n/Y", strtotime(5 april 2001"));
print ("$fecha");
Resultado:
5/4/2001
FUNCIONES DE ARRAYS:
array_count_values()
Calcula la frecuencia de cada uno de los elementos de un array
array_search()
Busca un elemento en un array
count()
Cuenta los elementos de un array
sort(), rsort()
Ordena y reindexa un array (r=decreciente)
ksort(), krsort()
Ordena por claves un array (r=decreciente)
AHORRANDO CODIGO:
Cmo ahorramos lneas de cdigo
Por lo general, todos nuestros script tienen partes de cdigo iguales, las
funcines include() y require() nos van ahorrar muchas de estas lineas de
cdigo. Ambas funciones hacen una llamada a un determinado fichero pero
de dos maneras diferentes, con include(), insertamos lo que contenga el
fichero que llamemos de manera literal en nuestro script, mientras que con
require(), le decimos que el script necesitar parte de cdigo de se
19
Copyright 2013

www.clubdeprogramacion.com

encuentra en el fichero que llama require().


Como todo esto es un poco lioso, veamos unos ejemplos que nos lo aclar.
<?php
include ("header.inc");
echo "Hola Mundo";
include ("footer.inc");
?>
Si tenemos encuenta que el fichero header.inc contiene:
<html>
<body>
y el fichero footer.inc contiene:
</body>
</html>
Nuestro script sera equivalente a:
<html>
<body>
<?php
<?php
echo "Hola Mundo";
?>
</body>
</html>
Ahora veamos el script de ejemplo para la funcin require():
<?php
require ("config.inc");
include ("header.inc");
echo $cadena;
include ("footer.inc");
?>
Donde el fichero config.inc tendra algo como sto:
<?php
$cadena = "Hola Mundo";
?>

20
Copyright 2013

www.clubdeprogramacion.com

BASE DE DATOS MYSQL

QUE ES UNA BASE DE DATOS:

Una base de datos (sea cual sea) es un soporte digital que tiene como fin el
almacenamiento masivo de informacin en formato texto plano. Aunque
existen formas de guardar otro tipo de datos como imgenes y archivos no
es recomendable hacerlo, lo mejor en esos casos es guardar dichos
archivos en un directorio y guardar la ruta en la base de datos.
Las bases de datos, son utilizadas en sistemas que requieren una
interaccin fluida con la aplicacin; estas se encargan muchas veces de
administrar, editar, y dar de alta. Usualmente la base de datos, est ligada
a la programacin directa del site, causando que una edicin en ella cause
una modificacin directa en lo que ve el usuario.
Ejemplos de aplicacin de una base de datos (entindase que estn ligadas
a un lenguaje dinmico como PHP o ASP):
E comerce, Agendas, Libros de visitas, foros, portales, etc
ESTRUCTURA NORMAL DE UNA DB:
Una base de datos, a fin de ordenar la informacin de manera lgica, posee
un orden que debe ser cumplido para acceder la informacin de manera
coherente.
Cada base de datos tiene una o ms tablas, las cuales cumplen la funcin
de contener los campos.
Un ejemplo de tabla sera contactos. Para entender mejor esto, sera como
un libro en el excel. Mientras que los campos seran las columnas del excel
donde se ordena cada datos insertado al libro. Ejemplo id, nombres,
apellidos, telfono. Y luego finalmente tenemos las filas (row), que son la
informacin propiamente dicha.
Por consiguiente una base de datos posee el siguiente orden jerrquico:

Tablas

Campos

Registros
21
Copyright 2013

www.clubdeprogramacion.com

MYSQL:

Es una base de datos con licencia GPL basada en un servidor, puede ser
slo creada por cdigo. Usualmente se utiliza el programa phpMyAdmin
como soporte para administrar la base de datos en el nivel de
programacin (a un usuario normal le resultara complicado utilizarla
desde linea de comandos).

ASPECTOS BSICOS DE PHPMYADMIN


phpMyAdmin es una herramienta escrita en PHP diseada para la
administracin de las bases de datos MySQL en la Web. Actualmente,
phpMyAdmin puede crear y eliminar bases de datos,
crear/eliminar/modificar tablas, eliminar/modificar/incluir registros,
ejecutar sentencias de SQL, y manejar campos con llaves.
Al acceder a la base de datos deberas logearte con un usuario y password
(recuerda el usuario por default y administrador es root y el password es el
que colocaste en la instalacion de appserv)
CREAR UNA TABLA EN BASE DE DATOS
La parte izquierda se usa para navegacin en phpMyAdmin. All podrs
encontrar tus bases de datos, en caso tengas alguna. Tan pronto como
crees tablas, se mostrarn debajo exactamente de la base de datos a la que
pertenecen.
Crearemos una tabla que se llame "Distrito". Usa la opcin de Create new
table. Escribe en el lugar correcto el nombre de la table: Distrito, y la
cantidad de columnas que tendr la tabla (3 en este caso) en el cajn de
texto FIELDS.
Puedes eliminar la tabla usando la funcin DROP.

Da clic en CONTINUAR y debes ver algo parecido a la grfica siguiente:

El nombre de cada columna escrbelo en el FIELD.


22
Copyright 2013

www.clubdeprogramacion.com

Ahora captura la informacin adecuada en los respectivos cajones de texto:


ID int 6
delegacion char 100
colonia char 100
La columna LENGHT indica el valor mximo que se permite en ese campo
para captura. Hay distintos tipos de valores que se puede utilizar para la
columna TYPE. char, varchar, int, numeric, etc. En este caso utilizaremos
char, que tiene un valor fijo y acepta caracteres alfanmericos. Los tipos
TYPES especificados en este ejemplo no necesariamente son los ms
eficientes a la hora de su uso. Debemos determinar cuidadosamente el tipo
de valor que se utilizar dependiendo de la informacin que se almacenar.
La columna ID se usar como llave primaria, o Primary Key, para esta
tabla, y se colocar en el tip auto_increment, el cual generar de manera
automtica un nmero consecutivo. Coloca el Default en cero 0.
Cuando finalices de capturar los datos, da clic en SAVE, o guardar.
Aparecer una ventana similar a la siguiente:

!Felicidades Has creado tu primera tabla. Los datos correspondientes a los


comandos utilizados para crear los campos tambin se muestra en la
pantalla. No es obligatorio ni indispensable, pero con el tiempo empezars
a reconocer comandos de MySQL en los mensajes de phpMyAdmin.
Puedes utilizar DROP para eliminar una tabla o alguno de sus campos.
INSERTANDO DATOS EN UNA TABLA
Da clic en INSERT y una pantalla como la siguiente aparecer:

Ahora captura los datos correspondientes a cada record. La columna ID es


automtica de manera que no debes de colocarla.
Es importante saber que si te sientes perdido en phpMyAdmin, es
suficiente darle clic a HOME en la parte izquierda y te llevar exactamente
al lugar de inicio.
Dale clic a SAVE y la informacin se almacenar en la tabla Distrito. La
imagen que se mostr con anterioridad es la que aparece cuando insertas
informacin en una tabla usando el comando INSERT de SQL. Puedes
23
Copyright 2013

www.clubdeprogramacion.com

aadir ms ms de un registro por medio de utilizar el botn de radio


Insert Another new row, en la forma de insercin.
Cuando finalices la insercin de datos, puedes confirmar su insercin y
navegar la informacin dndole clic a BROWSE. Puedes darle clic a cada
registro para editarlo o eliminarlo.

LENGUAJE SQL:

Este es el lenguaje que se utiliza para conectarse a una base de datos. Son
sentencias, que realizan un query (consulta) a la DB a fin de que esta les
responda con una cantidad de datos limitada segn lo buscado.
Bsicamente, existen muchsimas funciones de SQL, pero detallar las ms
usuales, con las cuales se pueden lograr una interaccin buena con la DB.
INSERTAR DATOS A UNA TABLA ESPECIFICA:
INSERT
INTO `Nombre Tabla` (` Nombre Campo ` , ` Nombre Campo ` , `Nombre
Campo`) VALUES ('Valor', ' Valor', ' Valor ');
EDITAR DATOS DE UNA FILA ESPECIFICA
UPDATE ` Nombre Tabla `
SET ` Nombre Campo ` = 'Valor', ` Nombre Campo ` = ' Valor',` Nombre
Campo ` = ' Valor'
WHERE `id` = 'Numero Fila';
Nota: Siempre se incluye el campo id, a fin de identificar con un valor
numrico una fila.
BORRAR UNA FILA
DELETE FROM ` Nombre Tabla `
WHERE `id`='Numero Fila';
SELECCIONAR DATOS DE UNA FILA
SELECT Nombre Campo, Nombre Campo
FROM Nombre Tabla where id = Numero Fila;
BUSCAR DATOS DENTRO DE UNA TABLA
24
Copyright 2013

www.clubdeprogramacion.com

SELECT Nombre Campo


FROM Nombre Tabla where Nombre Campo LIKE '%".Concepto de
Bsqueda."%;
CONTAR REGISTROS TOTALES EN UN CAMPO
SELECT COUNT (Nombre Campo) FROM Nombre Tabla;

BACKUPS DE LA BASE DE DATOS:


Realiza siempre un respaldo de tu base de datos de manera peridica.
Da clic sobre el nombre de la base de datos en el men del lado izquierdo.
Da clic en EXPORT.

Selecciona las tablas que desees respaldar.


Selecciona los botones de radio STRUCTURE y DATA
Selecciona los campos DROP TABLE Y ADD IF NOT EXITS
Selecciona ENCLOSE TABLE AND FIELNAMES WITH BACKQUOTES.
Selecciona los check boxes SAVE AS FILE y ZIPPED.

Al final solo haz clic en GO para exportar las tablas seleccionadas.

25
Copyright 2013

www.clubdeprogramacion.com

INTEGRANDO PHP Y MYSQL


En el capitulo anterior vimos cmo manejar una base de datos MySQL ,
como interactuar con ella usando las sentencias SQL, las cuales nos
permitan seleccionar, actualizar, insertar y eliminar registros de nuestras
tablas.
Ahora aprenderemos como usar estas sentencias pero usando PHP para
por ejemplo hace un programa que me muestre mi lista de contactos en
una pagina web.

CONECTAR A MYSQL DESDE PHP:

Para conectarnos a una base de datos desde php usaremos la funcion


mysql_connect() ,veamos un ejemplo:
<?php
$Connec= mysql_connect("localhost", "root","root");
echo ya estas conectado;
?>
Solo necesitamos especificar el Host o servidor, el usuario y si es que fuese
necesario el password para poder validarnos en la base de datos. El
resultado de la conexin es almacenado en la variable $Connec.

Ahora veamos como poder seleccionar una base de datos y enviar una
consulta SQL para despus mostrarla en php.

<?php
$Connec= mysql_connect("localhost", "root","root");
mysql_select_db("web", $Connec);
$result = mysql_query("SELECT * FROM agenda", $Connec);
echo "Nombre: ".mysql_result($result, 0, "nombre")."<br>";
echo "Direccin: ".mysql_result($result, 0, "direccion")."<br>";
echo "Telfono :".mysql_result($result, 0, "telefono")."<br>";
echo "E-Mail :".mysql_result($result, 0, "email")."<br>";
?>
26
Copyright 2013

www.clubdeprogramacion.com

Con mysql_select_db() PHP le dice al servidor que en la conexin


$Connecnos queremos conectar a la base de datos mydb. Podramos
establecer distintas conexiones a la BD en diferentes servidores, pero nos
conformaremos con una.
La siguiente funcin mysql_query(), es la que hace el trabajo duro, usando
el identificador de la conexin ($link), enva una instruccin SQL al
servidor MySQL para que ste la procese. El resultado de sta operacin es
almacenado en la variable $result.
Finalmente, mysql_result() es usado para mostrar los valores de los campos
devueltos por la consulta ($result). En este ejemplo mostramos los valores
del registro 0, que es el primer registro, y mostramos el valor de los campos
especificados.
MOSTRAR TODOS LOS DATOS DE UNA CONSULTA SQL:

Ahora veremos como mostrar todos datos de una consulta.


<html>
<body>
<?php
$Connec= mysql_connect("localhost", "root","root");
mysql_select_db("web", $Connec);
$result = mysql_query("SELECT nombre, email FROM agenda", $Connec);
echo "<table border = '1'> \n";
echo "<tr><td>Nombre</td><td>E-Mail</td></tr> \n";
$total_rows = mysql_num_rows($result);
for($i=0;$i<=$total_rows;$i++)
{
$nombre = mysql_result($result, $i, "nombre");
$email = mysql_result($result, $i, "email");
echo "<tr><td>$nombre</td><td>$email</td></tr> ";

}
echo "</table> ";
?>
</body>
27
Copyright 2013

www.clubdeprogramacion.com

</html>

Como podemos observar hemos usado la funcion mysql_num_rows que


devuelve el nmero de filas de un resultado asi en el ciclo FOR sabemos la
cantidad de veces que se mostrara el registro. Ntese que reemplazamos el
0 de la funcion mysql_result por la variable $i para ir avanzando entre
registros.
Tambin se puede mostrar los resultados de una consulta usando otras
funciones como veremos a continuacin.
<html>
<body>
<?php
$Connec= mysql_connect("localhost", "root","root");
mysql_select_db("web", $Connec);
$result = mysql_query("SELECT nombre, email FROM agenda", $Connec);
echo "<table border = '1'> \n";
echo "<tr><td>Nombre</td><td>E-Mail</td></tr> \n";
while ($row = mysql_fetch_row($result)){
echo ""<tr><td>$row[0]</td><td>$row[1]</td></tr> \n";
}
echo "</table> \n";
?>
</body>
</html>
En este script hemos introducido dos novedades, la ms obvia es la
sentencia de control while(), que tiene un funcionamiento similar al de
otros lenguajes, ejecuta una cosa mientras la condicin sea verdadera. En
esta ocasin while() evalua la funcin mysql_fetch_row(), que devuelve un
array con el contenido del registro actual (que se almacena en $row) y
avanza una posicin en la lista de registros devueltos en la consulta SQL.
La funcin mysql_fetch_row() tiene un pequeo problema, es que el array
que devuelve slo admite referencias numricas a los campos obtenidos de
la consulta. El primer campo referenciado es el 0, el segundo el 1 y as
sucesivamente. En el siguiente script solucionaremos este pequeo
inconveniente.
<?php
$Connec= mysql_connect("localhost", "root","root");
28
Copyright 2013

www.clubdeprogramacion.com

mysql_select_db("web", $Connec);
$result = mysql_query("SELECT nombre, email FROM agenda", $Connec);
if ($row = mysql_fetch_array($result)){
echo "<table border = '1'> \n";
echo "<tr><td>Nombre</td><td>E-Mail</td></tr> \n";
do {
echo "<tr><td>".$row["nombre"]."</td><td>".$row["email"]."</td></tr>
\n";
} while ($row = mysql_fetch_array($result));
echo "</table> \n";
} else {
echo " No se ha encontrado ningn registro !";
}
?>
Esencialmente, este script hace lo mismo que el anterior. Almacenamos en
$row el registro actual con la funcin mysql_fetch_array() que hace
exactamente lo mismo que mysql_fetch_row(), con la exepcin que podemos
referenciar a los campos por su nombre ($row["email"]), en vez de por un
nmero.
Con la sentencia if/else, asignamos a $row el primer registro de la
consulta, y en caso de no haber ninguno (else) mostramos un mensaje ("No
se ha encontrado..."). Mientras que con la sentencia do/while, nos
aseguramos que se nos muestren todos los registros devueltos por la
consulta en caso de haber ms de uno.
Hay que destacar la utilizacin del punto (.), como operador para
concatenar cadenas.

AADIR REGISTROS A NUESTRA BASE DE DATOS:

Ahora veremos cmo podemos aadir nuevos registros a nuesta BD. La


recogida de datos la vamos a hacer a traves de un interfaz de web. En
primer lugar vamos a crear una pgina web con un simple formulario, con
los campos que deseamos.
Formulario inicial aadir BD
<html>
<body>
<form method="post" action="insertar_reg.php">
Nombre :<input type="Text" name="nombre"><br>
Direccin:<input type="Text" name="direccion"><br>
29
Copyright 2013

www.clubdeprogramacion.com

Telfono :<input type="Text" name="telefono"><br>


E-mail :<input type="Text" name="email"><br>
<input type="Submit" name="enviar" value="Aceptar informacin">
</form>
</body>
</html>
Hemos creado un formulario donde recoger los datos, y una vez
introducidos ejecutamos un script llamado insertar_reg.php, pues veamos
como es este script.

<html>
<body>
<?php
// process form
$Connec= mysql_connect("localhost", "root", "root");
mysql_select_db("web", $Connec);
$sql = "INSERT INTO agenda (nombre, direccion, telefono, email) ".
"VALUES ('$nombre', '$direccion', '$telefono', '$email')";
$result = mysql_query($sql,$Connec);
echo "Gracias! Hemos recibido sus datos.\n";
</body>
</html>
Como se puede ver, para introducir un nuevo registro, utilizamos la ya
conocida funcin mysql_query(), la cul tambin usamos para las
consultas, y usaremos para las actualizaciones, es decir una seora
funcin. Una cosa muy importante, para poder aadir o modificar registros
debemos tener permiso para ello en el servidor MySQL, por eso en este caso
me conecto como root, pero podra ser cualquier otro usuario.
MODIFICAR REGISTROS DE NUESTRA BASE DE DATOS:

Lo primero, es lo primero, para modificar hay que tener permiso para ello
en el servidor de BD, el resto nos viene de corrido. Primero seleccionamos
el registro que deseamos modificar, y luego, mandamos una consulta con
las modificaciones, o ambas cosas a la vez. Suponemos que las
modificaciones las recogemos de un formulario como el de la leccin
anterior.
<html>
<body>
30
Copyright 2013

www.clubdeprogramacion.com

<?php
if (isset($id)){
// process form
$Connec= mysql_connect("localhost", "root",root);
mysql_select_db("web", $Connec);
$sql = "SELECT * FROM agenda WHERE id = $id"
$result = mysql_query($sql,$Connec);
$sql = "UPDATE agenda SET nombre='$nombre',
direccion='$direccion',".
"telefono='$telefono', email='$email'";
$result = mysql_query($sql);
}else{
echo "Debe especificar un 'id'.\n";
}
</body>
</html>
Tambin podra hacerlo de esta forma
<?php
if (isset($id)){
// process form
$Connec= mysql_connect("localhost", "root",root);
mysql_select_db("web", $Connec);
$sql = "UPDATE agenda SET nombre='$nombre', direccion='$direccion',".
"telefono='$telefono', email='$email' WHERE id=$id";
$result = mysql_query($sql,$Connec);
}else{
echo "Debe especificar un 'id'.\n";
}

31
Copyright 2013

www.clubdeprogramacion.com

BORRAR REGISTROS DE NUESTRA BASE DE DATOS:

El proceso de borrar un registro es idntico al de modificar, solo que en vez


de utilizar UPDATE utilizamos DELETE en la sentencia SQL. Por tanto el
script quedara como sigue.
<html>
<body>
<?php
if (isset($id)){
// process form
$Connec= mysql_connect("localhost", "root",root);
mysql_select_db("web", $Connec);
$sql = "DELETE agenda WHERE id=$id")
$result = mysql_query($sql,$Connec);
}else{
echo "Debe especificar un 'id'.\n";
}
</body>
</html>

32
Copyright 2013

www.clubdeprogramacion.com

También podría gustarte