Crear un foro en PHP y Mysql
by Pablo Rigazzi - 22 Abril 2008
Nota: Este artículo fue publicado originalmente en Junio de 2003 en “Maestros del Web“. Las funciones utilizadas en el código pueden haber sufrido cambios con las nuevas versiones de PHP y MySQL. Agradecemos desde ya cualquier comentario al respecto.
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, aqui 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 pagina de configuracion.php
<?php
$bd_host = “localhost”;
color=”#008000″>$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.
Bookmark it!
Digg it!
Menéame!
Fresqui
Suscríbase
english
español









26 Marzo 2008 at 2:51
[...] Take for example this PHP code from the post “Building a forum in PHP and Mysql”. [...]
25 Agosto 2009 at 9:08
Hola, gracias para estos consejos que me han servido para crear mi foro gratis en el sitio foroactivo. Ahí, tienen varias versiones de foros phpbb y sobre todo la posibilidad pasar de la versión phpbb2 a 3 o invision sin problema como un bueno webmaster. Además, esta nueva versión tiene muchas opciones gratis como mas de 3000 skin, la posibilidad de cambiar lo CSS y templates, crear perfiles personalizados, chatbox, sistema de reputación…y la ultima es cambiar los foros en blog y viceversa ! saludos