Está usted en Indice > Construcción > Lenguajes > PHP > Lecciones y Paso a Paso > Crear un foro en PHP y Mysql
Construcción
Maletín
Utilidades
Cursos
Promoción
Rentabilidad
Zona Novatos
Foros
Acceso a tu cuenta

Crear un foro en PHP y Mysql

En este tutorial crearemos un foro desde cero aprendiendo a separar la programación del diseño, y modularizando nuestra aplicación para que sea simple de configurar y de adaptar.

La Estructura

Primero y antes que nada, debemos preparar la tabla en la base de datos que contendrá todos los temas de nuestro foro. Lo que esta tabla tendrá, es la información de nuestros mensajes, el autor del mismo, y otros datos que servirán para identificar a que Tema pertenece un mensaje. Pero mejor, veamos la estructura propuesta:
CREATE TABLE `foro` (
`id` int(7) NOT NULL auto_increment,
`autor` varchar(200) NOT NULL default '',
`titulo` varchar(200) NOT NULL default '',
`mensaje` text NOT NULL,
`fecha` datetime NOT NULL default '0000-00-00 00:00:00',
`respuestas` int(11) NOT NULL default '0',
`identificador` int(7) NOT NULL default '0',
`ult_respuesta` datetime default NULL,
KEY `id` (`id`)
) TYPE=MyISAM;


Veamos en detalle que campos tendrá nuestra tabla de Foros:
• id: Será el identificador principal de la tabla. Sirve para diferenciar cada uno de los mensajes.
• autor: El autor del mensaje.
• titulo: El titulo que tendrá el mensaje. Si este mensaje es el iniciador de un tema, será el que mostrará en el home del Foro.
• mensaje: El mensaje en si mismo.
• fecha: Un campo DATETIME que indicará en que fecha se ha publicado este mensaje.
• respuestas: Si este mensaje es el iniciador de un tema, aquí se acumularán la cantidad de respuestas que reciba.
• identificador: Este campo guarda el valor del id del mensaje que se está respondiendo. Si el mensaje es iniciador de un tema, entonces este campo valdrá cero.
• ult_respuesta: Si el mensaje es iniciador de tema, aquí se actualizará valor de acuerdo con la fecha de la última respuesta que haya recibido. Sirve para poder mantener un orden en los foros.
La sentencia SQL anterior, pueden guardarla en un archivo.sql y correrla en su base de datos desde el phpMyAdmin, o si lo prefieren, pueden ingresarla línea por línea en un cliente de texto de mySQL (como el mySQL monitor). Una vez que hayan creado la tabla en su base de datos, entonces podemos avanzar al siguiente paso.
Antes de ponernos a programar cualquier parte del foro, vamos a encargarnos de hacer un pequeño script que realice una tarea que vamos a repetir mucho, y que es conectarnos a la base de datos. Este script lo incluiremos en cada página en la que tengamos que acceder a la base de datos:
Ejemplo de la página de configuracion.php

<?php
$bd_host = "localhost";
$bd_usuario = "user";
$bd_password = "password";
$bd_base = "nuestra_bd";

$con = mysql_connect($bd_host, $bd_usuario, $bd_password);
mysql_select_db($bd_base, $con);
?>

Cómo vemos, no hay gran ciencia en este script, tan solo unas variables conteniendo la configuración de nuestra base de datos, y el código mínimo y necesario para conectarnos y guardar el recurso de conexión en una variable $con que luego utilizaremos cuando hagamos nuestras consultas.
Los Templates
Antes de dar un paso más en la explicación, quiero hacerles unos comentarios respecto al "simple" sistemita de templates que utilizaremos en el foro. Primero, para aquellos que no sepan que es un Template, les recomiendo que lean los artículos de Nok y de Luigi en nuestra sección de Templates de Zonaphp.com, por lo menos para que tomen una idea de que son y para qué sirven.
Ahora, mi idea al utilizar templates, fue la de que los usuarios, pudieran modificar a su gusto el aspecto del foro, sin por ello tener que tocar el código de la aplicación. Esto es algo que el tutorial anterior no tenía en cuenta e incluía todo el código HTML de salida dentro del código mismo del foro, lo cual no es siempre recomendable. Lo que haremos en este caso es utilizar archivos .html que dentro contendrán solo diseño (o sea, código HTML ) y en los lugares en los que deseemos colocar contenido "dinámico", utilizaremos el formato simple para mostrar el contenido de variables, esto es : <?=$variable?>.
Para "interpretar" un template, primero lo leemos en memoria utilizando la función file() y luego utilizaremos una simple función a la que le pasaremos como parámetro el template y las variables que hay que reemplazar. Para muestra, basta un botón:
Ejemplo de la página de ejemplo.html
Nombre: <b><?=$nombre?></b><br>
Edad : <b><?=$edad?></b><br>
Domicilio : <?=$domicilio?>
<hr>




Usuarios que han visto este tema también han visto...

- Listado de registros PHP MySQL
- Información Encriptada en la DB Oracle (PHP)
- Como hacer encuestas con PHP y MySQL
- Convertir textos en enlaces en PHP
- Cacheando scripts para máxima optimización


Versión imprimible - Versión imprimible de este documento
Enviar e-mail - Enviar por e-mail este documento
Publicidad






Cursos de Community Manager

Información legal | Política de Privacidad | Contacte con nosotros

Otro proyecto de Factoría de Internet. Copyright© 2003-2011 Factoría de Internet S.L.. Todos los derechos reservados.


Página generada el 13-02-2012 a las 07:25:23