Está en la página 1de 6

Vamos a crear un libro de visitas, donde los visitantes puedan agregar su nombre y

comentarios. Adem�s el mismo sistema agrega la fecha en que se ingres� dicho


comentario.

Veamos como ser�a la estructura de la �nica tabla de nuestra libro de visitas:

CREATE TABLE libro_visitas (


id_comentario INT PRIMARY KEY AUTO_INCREMENT,
nombre VARCHAR(100) NOT NULL,
comentario TEXT NOT NULL,
fecha VARCHAR(100) NOT NULL
);

Guardemos el script de la estructura en un archivo de texto y echemos a andar


nuestro servidor web a trav�s de EasyPHP.Abrimos el navegador y digitamos la
direcci�n http://localhost/mysql/ que nos permitir� entrar al administrador de
bases de datos de EasyPHP
Crearemos una base de datos con el nombre libro_visitas, y cargaremos mediante el
script de texto la estuctura de la base.

Crear un archivo opciones.php que contenga lo siguiente:

<p><a href="administracion.php">Ver Lista de Comentarios</p>


<p><a href="form_comentario.php">Agregar Comentario</p>

Crear el archivo administracion.php que contenga lo siguiente:

<html>
<head><title>Libro de Visitas: Ver Comentarios</title>
<link rel="Stylesheet" href="estilos.css" type="text/css">
</head>
<body bgcolor="#FFFFFF">
<TABLE BORDER=0 WIDTH="100%" CELLPADDING=5>
<TR>
<TD VALIGN=TOP WIDTH="20%" Class="opciones">
<? include("opciones.php"); ?>
</TD>
<TD>&#160;&#160;&#160;</TD>
<TD VALIGN=TOP Class="contenido">

<center><h1>Lista de Comentarios</h1></center>

<!-- AQUI VA A IR EL CONTENIDO -->

</TD>
</TR>
</TABLE>
</body>
</html>

As� sucesivamente crear los archivos agregar_comentario.php, form_form.php,


editar_comentario.php y borrar_comentario.php

Enlazando datos:
El primer paso para enlazar una base datos con PHP es realizar una conexi�na dicha
base con mediante la funci�n:
mysql_connect("servidor:puerto","usuario","clave");
donde el par�metro servidores la ip o nombre del servidor donde est� la base de
datos, puerto es el puerto por el cual se accede a la base de datos, usuario es el
usuario de la base de datos, y clave es la contrase�a del usuario para acceder a la
base de datos.
ejemplo:
mysql_connect("192.168.24.25:3340","juanito","perez");
en el caso de que el proceso de conexi�n se realice en la misma m�quina donde est�
el servidor web se puede utilizar para el servidor "localhost". Ademas si el puerto
es elq ue se usa por defecto, es necesario especificarlos. Para nuestro caso
utilizaremos
mysql_connect("localhost","root",""); (1)
esta funci�n devuelve un entero que identifica la conexi�n mysql, por lo tanto para
utilizar m�s adelante este dato usaremos:
$link=mysql_connect("localhost","root","");
el siguiente paso ser�a selccionar la base que vamos a utilizar, para lo cual
usaremos:
mysql_select_db("nombre_base",identificador_conexi�n);
en nuestro caso ser�a:
mysql_select_db("mi_base",$link); (2)

Podr�amos entonces usar simplemete las l�neas (1) y (2) para realizar nuestra
conexi�n, pero corremos el riesgo de que se produzca alg�n error. Para detectar
dichos errores podemos enriquecer est�s dos l�nes de c�digo de la siguiente manera:

if(!$link=mysql_connect("localhost","root",""))
{
echo "Error al conectar a base de datos";
exit();
}
if(!mysql_select_db("mi_base",$link))
{
echo "Error al seleccionar base de datos";
exit();
}

Adem�s debido a que que utilizaremos porci�n de c�digo una y otra vez, podremos
guardarla en un librer�a de la siguiente manera:

define("NOMBRE_BD","libro_visitas"); /* esta l�nea la usaremos para definir el


nombre de la base de datos */

function conectar($nombre_base)
{
if(!$link=mysql_connect("localhost","root",""))
{
echo "Error al conectar a base de datos";
exit();
}
if(!mysql_select_db($nombre_base,$link))
{
echo "Error al seleccionar base de datos";
exit();
}
return $link;
}

Esta funci�n entonces utiliza como par�metro la variable $nombre_base que es el


nombre de la base que queremos abrir y devuelve la variable $link que es el
identificador de la conexi�n.

Guardemos esta funci�n en un archivo llamado adm.php el cual debe empezar con la
apertura de PHP (<?) y cerrarce con el cierre de PHP (?>). Para incluir nuestra
librer�a en los 4 archivo creados previamente utilizaremos

<?php include(adm.php); ?>

Recuerde que en PHP los includes se pueden colocar en cualquier l�nea del archivo,
pero para ser m�s ordenados es mejor inluirlas en las primeras l�neas de c�digo del
archivo.
para llamar a esta funcion podemos usar:
$link = conectar(NOMBRE_BD);

El siguiente paso es generar la consulta que deseamos realizar en la base, en


nuetro caso la guardaremos en un una variable tipo cadena de la siguiente manera:

$consulta = "select * from libro_visitas";

esta consulta devolverr�a el listado de todos los registros que existan en la tabla
libro_visitas.

para ejecutar la consulta sobre la base de datos utilizaremos


mysql_query($consulta,$link);
esta funci�n devuelve un arreglo multidimensional donde las filas son los registros
y las columnas los campos de la tabla.
guardaremos el resultado de esta funci�n en una variable de la sigueinte manera:
query=mysql_query($consulta,$link)
y para detectar si se ha producido o no un error podemos hacer lo siguiente:
if(!($query=mysql_query($consulta,$link))) echo "Error!!";

Como habitualmente se utiliza un for para recorrer este tipo de arreglo necesitamos
saber cual es el n�mero de filas del arreglo, lo cual lo podemos averiguar
mediante:
$filas = mysql_num_rows($query);

teniendo este dato podemos recorrer el arreglo de la siguiente manera:

for($i=0;$i<$filas;$i++)
{
$id_comentario = mysql_result($query,$i,0);
$nombre = mysql_result($query,$i,1);
$comentario = mysql_result($query,$i,2);
$fecha = mysql_result($query,$i,3);
echo "<hr><p>id_comentario: $id_comentario<br>
Nombre: $nombre<br>
Comentarios:<br>$comentario</p>
<p><a href='editar_comentario.php?id_comentario=$id_comentario'>Editar
comentario</a> --- <a href='borrar_comentario.php?
id_comentario=$id_comentario'>Borrar comentario</a></p>";
}

Finalmente reeditemos el archivo administracion.php de forma tal que quede asi:

<?php
include("validar.php");
include("adm.php");
?>

<html>
<head><title>Libro de Visitas: Ver Comentarios</title>
<link rel="Stylesheet" href="estilos.css" type="text/css">
</head>
<body bgcolor="#FFFFFF">

<TABLE BORDER=0 WIDTH="100%" CELLPADDING=5>


<TR>
<TD VALIGN=TOP WIDTH="20%" Class="opciones">
<? include("opciones.php"); ?>
</TD>
<TD>&#160;&#160;&#160;</TD>
<TD VALIGN=TOP Class="contenido">

<h3>Lista de Comentarios</h3>

<?php
$link = conectar(NOMBRE_BD);
$consulta = "select * from libro_visitas";
if(!($query=mysql_query($consulta,$link))) echo "Error!!";
$filas = mysql_num_rows($query);
for($i=0;$i<$filas;$i++)
{
$id_comentario = mysql_result($query,$i,0);
$nombre = mysql_result($query,$i,1);
$comentario = mysql_result($query,$i,2);
$fecha = mysql_result($query,$i,3);
echo "<hr><p>id_comentario: $id_comentario<br>
Nombre: $nombre<br>
Comentarios:<br>$comentario</p>
<p><a href='editar_comentario.php?id_comentario=$id_comentario'>Editar
comentario</a> --- <a href='borrar_comentario.php?
id_comentario=$id_comentario'>Borrar comentario</a></p>";
}
?>

</TD>
</TR>
</TABLE>

</body>
</html>

Si ejecutamos este archivo php no nos mostrar� nada, pues la base a�n est� vac�a,
el siguiente paso es crear uan interfaz que nos permita agregar datos a la tabla.
Para ellos implementaremos un formulario que capture los datos que deseamos
introducir en la tabla.

Reeditemos el archivo form_comentario.php introduciendo un fomulario que le pase


los datos al script agregar_comentario.php

<form action='agregar_comentario.php' method='post'>


<p>
nombre: <input type='text' name='nombre' size='30' Class='campo'></p>
<p>
comentario:<br><textarea name='comentario' cols='40' rows='5'
Class='campo'></textarea></p>
<p>
<input type='submit' value='agregar' Class='boton'></p>
</form>
A continuaci�n crearemos el archivo que procese estos datos y los agregue a la base
de datos

<?php

function calcula_fecha() /* esta funcion la utilizaremos para calcular la fecha */


{
$dia = date ("d");
$me = date ("m");
$agno = date ("Y");
$mes="";
if($me=="01") $mes="enero";
if($me=="02") $mes="febrero";
if($me=="03") $mes="marzo";
if($me=="04") $mes="abril";
if($me=="05") $mes="mayo";
if($me=="06") $mes="junio";
if($me=="07") $mes="julio";
if($me=="08") $mes="agosto";
if($me=="09") $mes="septiembre";
if($me=="10") $mes="octubre";
if($me=="11") $mes="noviembre";
if($me=="12") $mes="diciembre";
$cadena = "$dia de ";
$cadena .= "$mes de ";
$cadena .= "$agno";
return $cadena;
}

$fecha = calcula_fecha();

$link = conectar(NOMBRE_BD);
$consulta = "INSERT INTO libro_visitas (nombre, comentario, fecha)
values('$nombre', '$comentario', '$fecha')";
if(mysql_query($consulta,$link)) echo "Se agregaron los datos!!";
else echo "No se agregaron los datos!!";
?>

Hay que realizar una interfaz que permita modificar los datos. Para ellos
deber�amos agregar algo como esto en el archivo editar_comentario.php:

<?php
$link = conectar(NOMBRE_BD);
$consulta_edicion = "select * from libro_visitas WHERE
id_comentario=$id_comentario";
if(!($query_edicion = mysql_query($consulta_edicion,$link))) echo "Error!!";
$id_comentario = mysql_result($query_edicion,0,0);
$nombre = mysql_result($query_edicion,0,1);
$comentario = mysql_result($query_edicion,0,2);
$fecha = mysql_result($query_edicion,0,3);

echo "<form action='modificar_comentario.php' method='get'>


<input type='hidden' name='id_comentario' value='$id_comentario'>
<p>
nombre: <input type='text' name='nombre' size='30' value='$nombre'
Class='campo'></p>
<p>
comentario:<br><textarea name='comentario' cols='40' rows='5'
Class='campo'>$comentario</textarea></p>
<p>
<input type='submit' value='modificar' Class='boton'></p>
</form>";
?>

N�tese que se hace una consulta que devuelve una sola fila, por lo cual no se
requiere del ciclo for para obtener los datos.

Para enlazar este formulario en el archivo ademinisracion.php se agregaron links a


editar y borrar pasando como par�metro el id del comentario.

El script modificar_comentario.php que recibir�a los datos y los modificar�a ser�a:

<?php
$link=conectar(NOMBRE_BD);
$consulta="UPDATE libro_visitas SET nombre='$nombre', comentario='$comentario'
WHERE id_comentario=$id_comentario";
if(mysql_query($consulta,$link)) echo "Se modificaron los datos!!";
else echo "No se modificaron los datos!!";
?>

De esta manera cada vez que se llame al archivo editar_alumno.php se le pasar� como
par�metro la variable id_alumno. Observar adem�s que esta misma variable se pas�
del formulario de reedici�n al archivo modificar_alumno.php, pero como variable
oculta (hidden).

Resta entonces crear la opci�n borrar cual contendr�a un c�digo como el siguente:

<?php
$link=conectar(NOMBRE_BD);
$consulta="DELETE FROM libro_visitas WHERE id_comentario=$id_comentario";
if(mysql_query($consulta,$link)) echo "Se borraron los datos!!";
else echo "No se borraron los datos!!";
?>

Adem�s se supone que todos estos script son para administrar los datos, y se le
deber�a agregar una restriccion dacceso de usuario que pueden consultar en Acceso
Restringido

Por ultimo, hay que agregar en la parete p�blica del sitio hay que agregar un
formulario y un script para que los visitantes puedan colocar su comentarios, pero
sin p oder administrarlos como lo har�a el webmaster.

También podría gustarte