Documentos de Académico
Documentos de Profesional
Documentos de Cultura
<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>   </TD>
<TD VALIGN=TOP Class="contenido">
<center><h1>Lista de Comentarios</h1></center>
</TD>
</TR>
</TABLE>
</body>
</html>
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:
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;
}
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
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);
esta consulta devolverr�a el listado de todos los registros que existan en la tabla
libro_visitas.
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);
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>";
}
<?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">
<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.
<?php
$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);
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.
<?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.