Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/04/2002, 19:33
Miguel25
 
Fecha de Ingreso: marzo-2002
Mensajes: 22
Antigüedad: 22 años, 2 meses
Puntos: 0
foro de debate en php

Pille este tuto aqui pero no se porque no funciona ahi va el tuto:
Crearemos un archivo llamado foro.sql que contendra lo siguiente:

CREATE TABLE foro (
id INT(7) NOT NULL AUTO_INCREMENT,
autor CHAR(200),
titulo CHAR(200),
mensaje TEXT,
fecha INT(10),
respuestas INT(11) DEFAULT '0',
identificador INT(11),
KEY (id)
);

Con este archivo creamos los campos de la base de datos done creamos el campo autor, titulo, mensaje, fecha, respuestas e identificador, este ultimo campo sera la clave del foro .

Una vez tenemos lista la base de datos, tenemos que empezar a programar el foro.

Nuestro foro se basa en tres simples paginas, una principal que nos mostrara los titulos de los mensajes, la fecha y el numero de respuestas que tienen.

Llamemo index.php a esa pagina, el codigo de la pagian es este:

<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="50%">TITULO</a></td><td width="25%">FECHA</td><td width="25%">RESPUESTAS</td><tr></table>
<?
require("configuracion.inc");
$enlace = mysql_connect($host,$usuario,$password);
mysql_select_db($db,$enlace);
$consulta = "SELECT * FROM foro WHERE identificador = 0 ORDER BY fecha DESC";
$consulta = mysql_query($consulta,$enlace);
$lado=mysql_num_rows($consulta);
while($row = mysql_fetch_array($consulta)){
$titulo=$row["titulo"];
$id=$row["id"];
$titulo=$row["titulo"];
$fecha=$row["fecha"];
$respuestas=$row["respuestas"];
echo("<table width=100% border=0 cellspacing=0 cellpadding=0>");
echo("<tr>");
echo("<td width=50%><a href=foro.php?id=$id>$titulo</a></td><td width=25%>". date("d-m-y",$fecha)."</td><td width=25%>$respuestas</td>");
echo("</tr>");
echo("</table></body>");
}
?>
<center><font face="arial" size="1"><a href="formulario.php?respuestas=0">Añ adir mensaje</a></font></center>

Como vemos tenemos un enlace para insertar los mensaje, y vemos k pasa una variable por URL.

Sigamos en esa varaible pasamos el numero de respuestas del mensaje, por defecto 0 ya que es un mensaje y no una respuesta.

A continuacion crearemos el script donde insertaremos el contenido para añadirlo a la base de datos, el script se llamara formulario.php y su codigo es este:

<form action="add.php">
<input type="hidden" name="respuestas" value="<? echo $respuestas; ?>">
<input type="hidden" name="identificador" value="<? echo $id; ?>">
<input type="text" name="autor"><br>
<input type="text" name="titulo"><br>
<textarea name="mensaje"></textarea><br>
<input type=submit value="Enviar">
<? echo $id; ?>
</form>

En este script tomamos el valor del identificador, el id del mensaje y el nuemro de respuesta que lleba el mensaje, ¿para que utilizamos elcampo identificador? pues para poder linkear una respuesta con su respectivo mensaje.

De esta forma si en el campo identificador tenemos un 4 quiere decir que es la respuesta al mensaje con id 4 .

Otro archivo es el que inserta la informacion en la base de datos y que llamaremos add.php, su codigo es:

<?php
require("configuracion.inc");
$enlace = mysql_connect($host, $usuario, $password);
mysql_select_db($db,$enlace);
$fecha = time();
if(empty($identificador)){
$identificador=0;
}
$respuesta = $respuestas+1;
$sql = "INSERT INTO foro (autor, titulo, mensaje, fecha, identificador)";
$sql .="VALUES ('$autor', '$titulo', '$mensaje', '$fecha', '$identificador')";
mysql_query($sql);
$sql2 ="UPDATE foro SET respuestas = '$respuesta' WHERE id = '$identificador'";
mysql_query($sql2);
header("location: index.php");
?>

Como vemos son un simple INSER INTO y un UPDATE mas info en mysql.com para ello.

Ahora crearemos el script que nos mostrara cada mensaje con sus respuestas.


Lo llamaremos foro.php y so codigo es:

<?
require("configuracion.inc");
$enlace = mysql_connect($host,$usuario,$password);
mysql_s

elect_db($db,$enlace);
$consulta = "SELECT * FROM foro WHERE id = '$id' ORDER BY fecha DESC";
$consulta = mysql_query($consulta,$enlace);
while($row = mysql_fetch_array($consulta)){
$titulo=$row["titulo"];
$autor=$row["autor"];
$mensaje=$row["mensaje"];
$id=$row["id"];
$fecha=$row["fecha"];
$respuestas=$row["respuestas"];
echo "<html>
<head>
<title>Foro</title>
<link rel=stylesheet type=text/css href=foro.css>
</head>
<body>";
echo "<table><tr><td>$titulo& lt;/td><tr><td>$autor</td></tr><tr><td>$mensaje</td></tr></table>";

echo "<center><font face=arial size=1><a href=formulario.php?id=$id&respuestas=$respues tas>Añadir mensaje</a> <a href=index.php>Volver al foro</a></font></center>";
echo "</body></html>";
}
$consulta2 = "SELECT * FROM foro WHERE identificador = '$id' ORDER BY fecha DESC";
$consulta2 = mysql_query($consulta2,$enlace);
echo "RESPUESTAS:<br><hr>";
while($row = mysql_fetch_array($consulta2)){
$titulo=$row["titulo"];
$autor=$row["autor"];
$mensaje=$row["mensaje"];
$id=$row["id"];
$fecha=$row["fecha"];
$respuestas=$row["respuestas"];
echo "<table><tr><td>TITULO: $titulo</td><tr><td>AUTOR: $autor</td></tr><tr><td>MENSAJE: $mensaje</td></tr></table>";
}

?>

La clave esta en la consulta que hacemos a identificador = '$id' ya que nos mostrara todos todos los campos que contengan el id del mensaje.

Por ultimo jeej pero que tendria que haber sido lo primero crear el archivo de configuracion configuracion.in que tendra este code:

<?
$host = "host";
$usuario = "user";
$password = "pass";
$db = "base_de_datos";
?>

Pues nada mas, ya veis que crear un foro es algo tan sencillo como eso