May
31
2008
51

Como hacer un libro de visitas sencillo, usando PHP y MySQL

Hoy les traigo otro ejemplo bien sencillo que nos puede servir de base para hacer cosas mas complicadas y de calidad. Esta vez es un libro de visitas y veras que fácil sera de realizar.

Para lograr nuestro objetivo final, tenemos que crear una base de datos (libro_visitas), la cual contendrá una tabla de nombre firmas y un archivo php, uno solo, al que llamaremos libro-visitas.php.

La base de datos MySQL:

La tabla que les pongo de ejemplo, solo tiene tres campos: (firma_ID, usuario y firma).

CREATE TABLE `firmar` (
`firma_ID` int(11) NOT NULL auto_increment,
`usuario` varchar(25) NOT NULL,
`firma` text NOT NULL,
PRIMARY KEY (`firma_ID`)
) ENGINE=MyISAM ;

NOTA: Como es lógico, puedes agregar mas campos, dependiendo de lo que quieras logras, por ejemplo e-mail, sitio web, fecha, hora y aprobado (si, no), pero ese ya es tu trabajo ;)

El archivo libro-visitas.php:

En este archvo, claro esta, tendremos un formulario HTML mediante el cual, el usuario registrara su firma en nuesto libro de visitas, lo validaremos para que no nos envien campos vacios e insertaremos los registros a la base de datos, y tambien mostraremos las firmas ya guardadas.

<?php
/* conexion ****************/
// conectamos al servidor MySQL
$link = mysql_connect('localhost', 'root', '');
if(!$link) {
die("Error al intentar conectar: ".mysql_error());
}
// seleccionamos la base de datos
$db_link = mysql_select_db('libro_visitas', $link);
if(!$db_link) {
die("Error al intentar seleccionar la base de datos". mysql_error());
}
/* fin conexion ************/
/* prosesamiento de los datos */
// verificamos si ha sido enviado el formulario
if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){
// verificamos que el formulario
// no venga vacio
if(!empty($_POST['usuario']) && !empty($_POST['firma'])){
// creamos las variables a usar en la consulta
// y le asignamos sus valores
$usuario = htmlentities(trim($_POST['usuario']));
$firma = htmlentities(trim($_POST['firma']));
// la consulta INSERT
$sqlInsert = mysql_query("INSERT INTO firmar (usuario, firma)
VALUES ('$usuario', '$firma')", $link)
or die(mysql_error());
}else{
echo "Debe llenar todos los campos";
}
}
/* fin del proseso de datos */
/* mostrando los registros (firmas) */
$sqlQuery = mysql_query("SELECT * FROM firmar", $link)
or die(mysql_error());
$totalFirmas = mysql_num_rows($sqlQuery);
// verificamos si hay
// alguna firma registrada,
// de lo contrario enviamos un mensaje
if($totalFirmas == 0){
echo "Nadie se ha animado a firmar este libro :(";
}
// si hay firmas registradas
// las mostramos
else{
while($row = mysql_fetch_array($sqlQuery)){
echo "<p><b>$row[usuario]</b> dijo:<br />". nl2br($row['firma']) ."</p><hr />";
}
}
?>
<!-- el formulario -->
<form name="html" action="<?php $_SERVER['PHP_SELF']; ?>" method="post">
<p>
Usuario:<br />
<input type="text" name="usuario" />
</p>
<p>
Firma:<br />
<textarea name="firma" cols="35" rows="7"></textarea>
</p>
<input type="submit" name="enviar" value="Enviar" />
</form>

NOTA: Fijense bien en el uso de las funciones de cadena htmlentities y de trim, con ellas evitamos que nos inserten codigo HTML y nos dejen espacios en blanco al comienzo y final de las cadenas de texto enviadas por los usuarios.

Para terminar:

Espero que este ejemplo les sirva para sus trabajos y de impulso a quienes se inician. Siempre trato de no complicar mucho los códigos, para que se puedan entender bien los objetivos finales (además, que no me da pa mucho mas lo que se :/). Queda de parte de los lectores crecerce en base a esto y esforsarce para lograr un producto final mucho mejor, yo solo quiero darles una idea, una referencia y creo que lo he logrado.

A ver si se me ocurre alguna otra cosa en los próximos dias.

Saludos y Suerte

Written by rogertm in: Tutoriales | Tags: , , , ,
May
29
2008
0
May
29
2008
0

Un viejo refrán

“Cuanto te quiero chinche en el ojo, si fueras piojo mas te quisiera”

Escuche a una amiga decir este refrán, que además me pareció muy gracioso y les confieso que a pesar de considerarme un tipo muy dicharachero, nunca antes lo había escuchado. En fin, saca tus propias conclusiones ;)

Written by rogertm in: Off Topic | Tags: , ,
May
29
2008
21

Actualizando (UPDATE) registros de una BD MySQL usando PHP

Lo prometido es deuda, por eso aquí les traigo otro ejemplo de como hacer cosas elementales, en este caso, actualizar registros guardados en una tabla de nuestra base de datos MySQL, usando PHP.

Para ello usaremos una sencilla tabla de ejemplo, un par de archivos php: mostrar-registros.php y actualizar.php.

NOTA: Para no complicar mucho esto, la tabla MySQL y el archivo mostrar-registros.php son exactamente iguales a los que usamos en el ejemplo de borrar los registros, aunque con una mínima diferencia que veremos a continuación.

Mostrar los registros:

El único cambio en este archivo es que agregaremos un vinculo que nos servirá para pasar como variable el ID del registro a actualizar a la pagina que se encargara de hacer el trabajo (actualizar.php).

<?php
// solo agregamos una linea
// al bucle while
// quedaria asi
while($row = mysql_fetch_array($sql)){
echo $row['usuarioNombre']." - ".$row['usuarioEmail'].
" - <a href='eliminar.php?id=$row[usuario_ID]'>Eliminar</a> | <a href='actualizar.php?id=$row[usuario_ID]'>Actualizar</a>\n";
}
?>

Hablando en buen cubano, ya estamos listos para ir al pollo del arroz con pollo :P

Actualizando los registros

Como pudimos ver, en la linea que hemos agregado a nuestro archivo mostrar-registros.php, lo que hacemos es pasar vía $_GET el ID del registro con el que vamos a trabajar al archivo actualizar.php. Nos apoyaremos en un formulario HTML para ejecutar la consulta UPDATE, pero primero tenemos que recoger los datos que vamos a actualizar usando otro consulta SELECT. Bueno, al pollo.

<?php
/** conexion ***************************/
// conectamos a la base de datos
$link = mysql_connect('localhost', 'root', '');
if(!$link) {
die("Error al intentar conectar: ".mysql_error());
}
// seleccionamos la base de datos
$db_link = mysql_select_db('base-de-datos', $link);
if(!$db_link) {
die("Error al intentar seleccionar la base de datos". mysql_error());
}
/** fin conexion ************************/
// recogemos el ID
// del registro a actualizar
if(isset($_GET['id'])){
$id = $_GET['id'];
// hacemos una consulta
// para mostrar los datos
$sql = mysql_query("SELECT * FROM usuarios
WHERE usuario_ID = $id", $link)
or die(mysql_error());
$row = mysql_fetch_array($sql);
// advertimos
$mensaje = "Actualizar los datos del usuario <b>$row[usuarioNombre]</b>";
}
// comprobamos si
// ha sido enviado el formulario
if(isset($_POST['actualizar']) && $_POST['actualizar'] == 'Actualizar'){
// comprobamos que no lleguen campos vacios
if(!empty($_POST['usuarioNombre']) && !empty($_POST['usuarioEmail']) && !empty($_POST['usuarioDNI'])){
// creamos las variables
// que vamos a usar en la consulta UPDATE
// y le asignamos sus valores
$usuario_ID = $_POST['usuario_ID'];
$usuarioNombre = $_POST['usuarioNombre'];
$usuarioEmail = $_POST['usuarioEmail'];
$usuarioDNI = $_POST['usuarioDNI'];
// la consulta UPDATE
$sqlUpdate = mysql_query("UPDATE usuarios
SET usuarioNombre = '$usuarioNombre',
usuarioEmail = '$usuarioEmail',
usuarioDNI = '$usuarioDNI'
WHERE usuario_ID = '$usuario_ID'", $link)
or die(mysql_error());
echo "Registro actualizado correctamente";
}else{
echo "debe llenar todos los campos";
}
}else{
// mostramos el mensaje
echo "<p>".$mensaje."</p>";
?>
<!--
el formulario.
los values de los campos
son los valores que optenemos
de la consulta SELECT
-->
<form name="actualizar-registro" method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
Nombre: <input type="text" name="usuarioNombre" value="<?php echo $row['usuarioNombre']; ?>" /><br />
E-mail: <input type="text" name="usuarioEmail" value="<?php echo $row['usuarioEmail']; ?>" /><br />
DNI: <input type="text" name="usuarioDNI" value="<?php echo $row['usuarioDNI']; ?>" /><br />
<input type="hidden" name="usuario_ID" value="<?php echo $row['usuario_ID']; ?>" />
<input type="submit" name="actualizar" value="Actualizar" />
</form>
<?php } ?>

NOTA: Nótese que el ultimo else cierra debajo del formulario, la función que tiene es esconder el mismo, una vez enviado ;)

Conclusiones:

Como siempre digo, espero que este y los demás ejemplos sirvan de utilidad a los que se inician, que es a quienes van dirigidos. Dada la sencillez de los mismos, esta claro que a estos les faltan algunos detalles que ustedes irán descubriendo a medida que avancen por este camino, interminable además, que es la programación.

NOTA: Recuerda que en el ejemplo de como borrar los registros están la tabla MySQL y el archivo mostrar-registros.php que sirven para este que estas leyendo ahora.

Saludos y Suerte

Written by rogertm in: Tutoriales | Tags: , , , ,
May
27
2008
0

¿La frase del día?

“Donde el virtuoso se recata, el ambicioso vence”

Acabo de ver esta frase plasmada en la pared de un mercado, justo donde venden carne de cerdo, pero realmente no la entiendo :/

¿Tendrá que ver algo con la venta de carne? ¿Puede alguien ayudarme a entender?

Written by rogertm in: Off Topic | Tags: , ,
Página 1 de 212»

Kilómetro Cero - RogerTM @ Bloggers Cuba
Powered by WordPress. Theme: TheBuckmaker. Insolvenz Konkurs, Autor werden
Modificado por: RogerTM para Kilómetro Cero

Kilómetro Cero es un Blog muy Cool para Internet Explorer