You are on page 1of 16

Acceso a Datos mediante PHP y MySQL

Introduccin
En la actualidad con la llegada de las comunidades en lnea, y de los sitios WEB que sirven
contenidos a las personas (Revistas, perodicos, blogs, etc.) se ha vuelto prcticamente
indispensable el manejo de bases de datos a travs de las pginas, prueba de ello son las
redes sociales como Facebook y Hi5 que manejan grandes volmenes de informacin, todo
ello como sitios WEB pero con acceso a bases de datos.
Entre los motores de bases de datos ms populares en la internet podemos encontrar a
MySQL, PostgreeSQL y SQLite.
En este caso con concentraremos en el uso de MySQL, para ello necesitaremos aprender
como crear bases de datos en nuestro WEB Hosting que creamos en Hostinger.es
Antes de leer esta gua les recomiendo que lean el documento
llamado Antes de Comenzar con PHP que est dentro de la leccin 8
en el cual explico sobre como obtener WEB Hosting que soporte PHP
para hacer pruebas y poder ejecutar los ejemplos que se detallan aqui.
Antes de comenzar necesitaremos hacer dos cosas:
1. Crear una base de datos MySQL
2. Obtener acceso a ella mediante phpMyAdmin el cual es un gestor que nos permite
realizar operaciones dentro de bases de datos a travs de una interface WEB

Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

Crear una base de datos MySQL en un WEB Hosting de Hostinger.es


1. Entre al Administrador de su WEB Hosting, En el documento llamado Antes de
Comenzar con PHP de la leccin 8 encontrar como hacerlo.
2. Localice el la seccin Bases de Datos:

3. Haga clic en donde dice: Bases de Datos MySQL


4. Aparecer un formulario como el siguiente:

En l debe llenar la informacin siguiente:


Nombre de base de datos MySQL: aqu debe escribir que nombre desea darle
a su base de datos, est limitado a escribir 5 caracteres, en mi caso le puse a la
base de datos el nombre uth
Observe que a la derecha de donde escribimos el nombre de la base de datos
sale una serie de caracteres (en este caso u388402765_) ese identificador ser
concatenado al nombre de nuestra base de datos, por lo tanto al final mi base
de datos se llamar u388402765_uth que es la concatenacin del ID asignado
Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

por la gente de hostinger.es y el nombre que yo quiero ponerle a mi base de


datos.
Usuario MySQL: ser el nombre que tendr el usuario por medio del cual nos
conectaremos a la base de datos que crearemos, tambin estamos limitados a
escribir 5 caracteres, y a la par ver el mismo identificador asignado por
hostinger.es (u388402765_) por lo tanto en mi caso el usuario de base de
datos se llamar u388402765_gerar siendo gerar la palabra que yo escrib para
mi nombre de usuario.
Contrasea: aqu usted escriba la clave que quiere que tenga la base de datos
que est punto de crear, por favor no vaya a olvidarla ya que la necesitaremos
en el futuro. En mi caso usar la clave estaesmiclave
Una vez llenado el formulario anterior haga clic en el botn Crear, y luego de unos
segundos aparecer el mensaje:

El cual indica que hemos creado la base de datos correctamente.


Mas abajo podr ver un listado de las bases de datos creadas en su WEB Hosting:

Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

Acceso al administrador de bases de datos phpMyAdmin


1. Entre al Administrador de su WEB Hosting, En el documento llamado Antes de
Comenzar con PHP de la leccin 8 encontrar como hacerlo.
2. Localice el la seccin Bases de Datos:

3. Haga clic en donde dice: phpMyAdmin


4. Ver un listado de las bases de datos que ha creado para su WEB Hosting

5. Haga clic en el botn Ingresar phpMyAdmin


6. Ser trasladado a phpMyAdmin el cual es una herramienta WEB que le permitir realizar
operaciones en la base de datos, operaciones bsicas tales como:
a. Crear, editar, administrar y eliminar tablas
b. Consultar las tablas de
la base de datos
mediante consultas en
lenguaje SQL (Queries)
c. Crear
copiar
de
seguridad de sus datos

Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

Crear una tabla en nuestra base de datos


Para los ejemplos de este documento necesitamos crear una tabla en nuestra base de datos
que est alojada en el WEB Hosting, con el fin de almacenar la informacin que vamos a
manipular, para ello seguimos los siguientes pasos:
1. Entrar al phpMyAdmin de la base de datos que creamos al comienzo de este documento
2. Si nunca ha creado una tabla le aparecer el siguiente panel:

En dicho panel se nos permitir crear una nueva tabla, el nombre de la tabla ser
alumno y el nmero de columnas dejarlo en 4.
3. Definir los campos siguientes:

Luego en la parte de abajo hacer clic en Guardar:

Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

Ahora la nueva tabla aparecer en el listado de tablas:

Consultar, Insertar, Modificar y eliminar datos en la tabla por medio de MySQL


Para ejecutar comandos SQL en el motor de base de datos vamos a la seccin que dice SQL,
esta sale en la barra de botones de arriba:

Aqu nos aparecer un rea de texto donde ejecutaremos los comandos SQL que
necesitemos.

Insertar Datos
Si deseamos agregar datos a la tabla que creamos ejecutamos el comando llamado INSERT
como en la siguiente imgen:
INSERT INTO alumno(cuenta,nombre,campus,carrera)
VALUES('200710510115','Gerardo Josue Portillo','San Pedro
Sula','Ingenieria en Computacion')
Para ejecutarlo hacer clic en el botn CONTINUAR que sale abajo a la derecha.
El INSERT en este caso dice que en la tabla alumno vamos a llenar los campos cuenta,
nombre, campus y carrera con los datos definidos en VALUES respectivamente.
En la imagen sale como al ejecutar el comando anterior en la tabla aparece el nuevo
registro que acabamos de agregar:

Cuando el comando fue ejecutado correctamente nos sale el mensaje:

Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

Consultar Datos
Para saber que registros hay dentro de una tabla ejecutamos el comando llamado SELECT,
en nuestro caso el comando a ejecutar para saber que registros hay en la tabla alumno
ser:
SELECT * FROM alumno

Para ejecutarlo hacer clic en el botn CONTINUAR que sale abajo a la derecha.

En la imagen anterior vemos el resultado de la consulta.


Si en dado caso solo deseamos consulta determinado alumno, por ejemplo por su nmero
de cuenta podemos escribir la siguiente consulta:
SELECT * FROM alumno WHERE cuenta = '200710510115'

Y al ejecutarlo solo devolver el alumno con ese nmero de cuenta.

Eliminar Datos
Para borrar algn registro de una tabla utilizamos un comando llamado DELETE, este lleva la
sintaxis siguiente:
DELETE FROM alumno WHERE cuenta = '200710510115'

Donde DELETE FROM alumno dice que eliminaremos de la tabla alumno los registros pero
que cumplan la condicin establecida en el WHERE en este caso solo borrar el alumno con
cuenta igual a 200710510115 ( cuenta = '200710510115' ).

Modificar Datos
Para modificar los datos de los registros se usa el comando UPDATE, por ejemplo en este
caso si deseamos cambiar el Campus del alumno con cuenta 200710510115 escribimos los
siguiente:
UPDATE alumno SET campus = 'Tegucigalpa' WHERE cuenta =
'200710510115'
Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

Con ello al alumno con cuenta igual a 200710510115 se le cambiar el dato de la columna
Campus a Tegucigalpa.

Ms informacin sobre MySQL


Si desea saber ms sobre el lenguaje MySQL sugiero que descarguen la gua de referencia
llamada La Biblia de MySQL que he puesto en esta leccin.
En las siguientes pginas continuacin encontrar una serie de
ejemplos sobre como interactuar entre PHP y MySQL

Saber cual es la direccin pblica de mi Base de Datos


1. Entre al Administrador de su WEB Hosting, En el documento llamado Antes de
Comenzar con PHP de la leccin 8 encontrar como hacerlo.
2. Localice el la seccin Bases de Datos:

3. Haga clic en donde dice: Bases de Datos MySQL


4. Abajo podr ver un listado de las bases de datos creadas en su WEB Hosting:

5. Ver una columna que dice Host MySQL, esa es la direccin para poder conectar con la
base de datos desde otros lenguajes en este caso, cuando aprendamos PHP ocuparemos
de esta direccin.

Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

Ejemplo 1: Obtener datos de una tabla de MySQL


En el siguiente ejemplo mostrar como hacer un formulario de consulta que pida el nmero
de cuenta de un alumno y mostrar los datos del mismo al enviar el formulario.
1. En el administrador de archivos de su cuenta de WEB Hosting, crear un archivo llamado
index.html, en el pondremos el cdigo para nuestro formulario web:
<IMG SRC=UTH.png>
<FORM METHOD=POST ACTION="consultar.php">
Numero de Cuenta del Alumno:
<INPUT TYPE="text" NAME="cuenta"><br/>
<br>
<INPUT TYPE="submit" VALUE="Consultar">
</FORM>

En este caso el formulario WEB consta de un cuadro de texto donde se capturara el


nmero de cuenta. La informacin capturada se enviar al archivo consultar.php donde
se har la consulta a la base de datos de MySQL.

2. Crear un archivo llamado consultar.php en la misma carpeta de index.html y poner el


cdigo siguiente:
<?php
//conexion al servidor de MySQL
$link = mysql_connect("mysql.hostinger.es", "u388402765_gerar", "estaesmiclave");
//seleccionar la base de datos
$basedatos = mysql_select_db('u388402765_uth');
//enviar la consulta a la base de datos
$consulta = mysql_query("SELECT * FROM alumno WHERE cuenta = '".$_POST["cuenta"]."'", $link);
//mostrar los resultados
echo "<b>Resultados de la busqueda:</b><br/>";
while ($registro = mysql_fetch_assoc($consulta))
{
echo "<b>Cuenta:</b> ".$registro['cuenta']."<br/>";
echo "<b>Nombre:</b> ".$registro['nombre']."<br/>";
echo "<b>Campus:</b> ".$registro['campus']."<br/>";
echo "<b>Carrera:</b> ".$registro['carrera']."<br/>";
}
?>

Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

En la primera parte se crea una variable llamada $link donde se hace la conexin al
servidor de bases de datos mediante el comando mysql_connect, en mi caso es el
servidor de bases de datos del WEB Hosting que he utilizado desde el principio de este
docmento: mysql.hostinger.es, y el usuario de la base de datos se llama
u388402765_gerar y el password que yo puse a dicho usuario es estaesmiclave. (si no
sabe de donde saqu estos valores lea un par de pginas atrs). En el futuro cuando
monten sus sitios web en otro Web Hosting tendrn que proporcionar esta informacin
y en lugar de mysql.hostinger.es ir la direccin de servidor donde est la base de datos
y el usuario y password proporcionado por el proveedor del servidor de pginas WEB
que ustedes hallan contratado.
Luego se crea una variable llamada $basedatos la cual a traves del comando
mysql_select_db hace el enlace con la base de datos en la cual estarn las tablas que
consultaremos, en nuestro caso la que creamos en pginas anteriores: u388402765_uth.
A continuacin se hace la consulta a la base de datos seleccionada, esto con el comando
mysql_query el cual ejecuta las sentencias SQL que definamos en su primer parmetro.
en este caso:
"SELECT * FROM alumno WHERE cuenta = '".$_POST["cuenta"]."'"
Aqu enva una sentencia de consulta SELECT y aqu definimos que el nmero de cuenta
ser el recibido en la variable $_POST, el segundo parmetro de mysql_query es $link
que es la variable con la que conectamos al servidor de base de datos.
Por ltimo se muestra los resultados de la consulta, esto con el comando
mysql_fetch_assoc el cual recibe como parmetro el resultado obtenido en la variable
$consulta, el comando se ejecuta en un ciclo while para recorrer cada registro devuelto
por la $consulta y almacenar cada uno en una variable llamada $registro por medio del
cual tendremos acceso a los campos del registro consultado, como en el caso de:
echo "<b>Nombre:</b> ".$registro['nombre']."<br/>";
Donde estamos mostrando al usuario el
campo nombre que se encuentra dentro de la
variable $registro.
En la siguiente imagen muestro el resultado de
consultar la cuenta 200710510115:

Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

Ejemplo 2: Insertar Datos en una base de datos MySQL a travs de un


formulario WEB
Ahora toca conocer cmo se puede hacer INSERT a una tabla de una base de datos
mediante la captura de valores en un formulario WEB.
1. Primero crear un archivo llamado insertar.html, en el pondremos el cdigo para nuestro
formulario web:
<IMG SRC=UTH.png>
<H1>Nuevo Alumno</H1>
<FORM METHOD=POST ACTION="agregar.php">
Numero de Cuenta:
<INPUT TYPE="text" NAME="cuenta"><br/>
Nombre del Alumno:
<INPUT TYPE="text" NAME="nombre"><br/>
Campus:
<INPUT TYPE="text" NAME="campus"><br/>
Carrera:
<INPUT TYPE="text" NAME="carrera"><br/>
<br/>
<INPUT TYPE="submit" VALUE="Guardar">
</FORM>

Aqu se capturar en cuadros de texto los datos del alumno a crear, la informacin ser
enviada a travs del archivo agregar.php, el formulario debe lucir as:

Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

2. Ahora crear un archivo llamado agregar.php que es donde haremos el INSERT en la tabla
de alumno, el cdigo de este archivo es el siguiente:
<?php
//conexion al servidor de MySQL
$link = mysql_connect("mysql.hostinger.es", "u388402765_gerar", "estaesmiclave");
//seleccionar la base de datos
$basedatos = mysql_select_db('u388402765_uth');

//revisar si al menos viene nombre y numero de cuenta


if ( $_POST["cuenta"] == null || $_POST["nombre"] == null )
{
echo "debe escribir el nombre y numero de cuenta";
return;
}
//ejecutar el comando de INSERCION
$comando = mysql_query(
"INSERT alumno(cuenta,nombre,campus,carrera)
VALUES('".$_POST["cuenta"]."','".$_POST["nombre"]."',
'".$_POST["campus"]."','".$_POST["carrera"]."')",$link);
//si ocurre un error avisa
if (!$comando)
{
echo "Ha ocurrido un error";
}
else
{
echo "Alumno agregado correctamente";
}
?>

la primera parte donde definimos las variables $link y $basedatos ya estn explicadas en
el ejemplo anterior, luego sigue una validacin donde nos aseguramos que el visitante
escribi al menos el nmero de cuenta y el nombre del alumno que va a crear, esto se
hace verificando con un IF si alguna de las variables enviadas por POST son nulas ( ==
null ) lo que significa que no se proporcion esta informacin y por lo tanto no
permitiremos que se contine con la creacin de alumno, luego se ejecuta el comando
return el cual termina con todo el programita PHP y no continuar con el cdigo que le
sigue.
Luego con mysql_query se ejecuta el comando INSERT y en la parte de VALUES
proporcionamos los datos almacenados en las variables POST.
Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

Por ltimo vemos si la ejecucin del INSERT fue exitosa, para ello evaluamos la variable
$comando que es con la que mandamos a llamar el INSERT, si esta variable no presenta
ningn valor ( !$comando ) entonces muestra un mensaje que ha ocurrido un error, de
lo contrario muestra un mensaje indicando que el alumno se agreg correctamente:

Si desde phpMyAdmin consulta la tabla alumno ver que la informacin se est


agregando correctamente:

Ejemplo 3: Modificar Datos en una base de datos MySQL a travs de


un formulario WEB
Lo que sigue es ver cmo hacer cambios a los datos ya existentes en una tabla de una base
de datos, para ello se usa el comando UPDATE.
1. Primero crear un archivo llamado editar.html, en el pondremos el cdigo para nuestro

formulario web:
<IMG SRC=UTH.png>
<H1>Cambiar Carrera del Alumno</H1>
<FORM METHOD=POST ACTION="modificar.php">
Numero de Cuenta del Alumno:
<INPUT TYPE="text" NAME="cuenta"><br/>
Escriba la nueva carrera:
<INPUT TYPE="text" NAME="carrera"><br/>
<br/>
<INPUT TYPE="submit" VALUE="Cambiar la carrera">
</FORM>

Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

El formulario capturar el nmero de cuenta del alumno al cual se le va a cambiar la


carrera, esta se capturar en el cuadro de texto llamado carrera.

2. Luego crear un archivo llamado modificar.php donde se procesar la informacin

enviada por el formulario, el cdigo es el siguiente:


<?php
//conexion al servidor de MySQL
$link = mysql_connect("mysql.hostinger.es", "u388402765_gerar", "estaesmiclave");

//seleccionar la base de datos


$basedatos = mysql_select_db('u388402765_uth');
//revisar si viene el numero de cuenta y la nueva carrera
if ( $_POST["cuenta"] == null || $_POST["carrera"] == null )
{
echo "debe escribir el numero de cuenta y la carrera";
return;
}
//ejecutar el comando UPDATE
$comando = mysql_query(
"UPDATE alumno SET carrera = '".$_POST["carrera"]."'
WHERE cuenta = '".$_POST["cuenta"]."'",$link);
//si ocurre un error avisa
if (!$comando)
{
echo "Ha ocurrido un error";
}
else
{
echo "Cambio de carrera hecho exitosamente";
}
?>
Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

La parte de conexin a la base de datos ya fue explicada en los ejemplos anteriores,


luego se hace la validacin de si el usuario escribi el nmero de cuenta y la nueva
carrera, luego mediante mysql_query se hace el UPDATE respectivo donde por medio
del SET se escribir la carrera enviada por la variable POST en el registro que cumpla la
condicin definida en el WHERE donde cuenta sea igual al valor enviado en la variable
POST llamada cuenta. Por ltimo se verifica si ocurri algn error.

Ejemplo 4: Eliminar Datos en una base de datos MySQL a travs de un


formulario WEB
Por ltimo voy a mostrar un ejemplo donde eliminaremos un alumno a travs de su nmero
de cuenta esto por medio del comando DELETE.
1. Primero crear un archivo llamado borrar.html, en el pondremos el cdigo para nuestro
formulario web:
<IMG SRC=UTH.png>
<H1>Eliminar Alumno</H1>
<FORM METHOD=POST ACTION="eliminar.php">
Numero de Cuenta del Alumno:
<INPUT TYPE="text" NAME="cuenta"><br/>
<br/>
<INPUT TYPE="submit" VALUE="Eliminar el Alumno">
</FORM>

En este formulario solo se capturar el nmero de cuenta del alumno a eliminar.

Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

2. Lo que sigue es crear un archivo llamado eliminar.php, el cdigo de este es el siguiente:


<?php
//conexion al servidor de MySQL
$link = mysql_connect("mysql.hostinger.es", "u388402765_gerar", "estaesmiclave");

//seleccionar la base de datos


$basedatos = mysql_select_db('u388402765_uth');
//revisar si viene el numero de cuenta
if ( $_POST["cuenta"] == null )
{
echo "debe escribir el numero de cuenta";
return;
}
//ejecutar el comando UPDATE
$comando = mysql_query(
"DELETE FROM alumno WHERE cuenta = '".$_POST["cuenta"]."'",$link);
//si ocurre un error avisa
if (!$comando)
{
echo "Ha ocurrido un error";
}
else
{
echo "Alumno eliminado exitosamente";
}
?>

Este cdigo se parece mucho al del ejemplo anterior con la diferencia que el comando
ejecutado con mysql_query es DELETE FROM para la tabla alumno y con el nmero de
cuenta enviado por la variable POST llamada cuenta. El manejo de errores se trabaja de
la misma manera.

En conclusin el acceso a datos en sitios WEB puede hacerse a travs de lenguajes del lado
del servidor tales como PHP, otras excelentes opciones son Python, Java y Ruby.
Material facilitado por Ing. Gerardo Josu Portillo (gerardo.portillo@uth.hn)

You might also like