Foros del Web » Programando para Internet » PHP »

foro de debate en php

Estas en el tema de foro de debate en php en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/04/2002, 20:33
 
Fecha de Ingreso: marzo-2002
Mensajes: 22
Antigüedad: 15 años, 9 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
  #2 (permalink)  
Antiguo 21/04/2002, 08:15
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
Re: foro de debate en php

hola soy el autor del tutorial de como hacer un foro y si que funciona, lo que pasa es que en el copy paste se pierden algunas lineas, es decir se cortan y demas, te aconsejo k lo revises, y veras como todo sale bien.

<table style="border:1px solid black"><tr><td><center>
<embed width="88" height="144" src="http://www.alaplaya.com/~epplestun/yo.swf"></td></td><font face=verdana size=1>Ivan Rodriguez el poder es [B]PHP</p></td></tr></table>
  #3 (permalink)  
Antiguo 25/04/2002, 20:32
 
Fecha de Ingreso: marzo-2002
Mensajes: 22
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: foro de debate en php

no consigo que funcione, para asegurarme cree la base de datos a mano con la mysql y sigue sin poder conectarse con ella eso en el localhost , en el server nu se como crearla.

Gracias
  #4 (permalink)  
Antiguo 26/04/2002, 00:42
Avatar de epplestun  
Fecha de Ingreso: octubre-2001
Mensajes: 1.621
Antigüedad: 16 años, 1 mes
Puntos: 5
Re: foro de debate en php

no te funciona?¿ es realmente extraño ya que a mi me funciona perfectamente, dime exactamnete cual es el error y que archivo te lo da asi te podre ayudar.

<table style="border:1px solid black"><tr><td><center>
<embed width="88" height="144" src="http://www.alaplaya.com/~epplestun/yo.swf"></td></td><font face=verdana size=1>Ivan Rodriguez el poder es [B]PHP</p></td></tr></table>
  #5 (permalink)  
Antiguo 26/04/2002, 19:17
 
Fecha de Ingreso: marzo-2002
Mensajes: 22
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: foro de debate en php

Hola epplestun, gracias desde ya por intentar ayudarme, soy novato en esto del php asi que seguramente el error lo este cometiendo yo , bueno te explico lo que he hecho he creado los archivos como digiste en el tutorial, los he copiado al directorio c:\Apache\htdocs\,y nada me da un error que pone fallo conectanto con la base de datos, entonces cree la base de datos a mano metiendo este codigo en mysql
CREATE DATABASE foro;

USE foro;

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)
);

Me crea la base de datos y la tabla pero despues no la encuentra todo esto en el localhost claro, en el server tampoco funciona he subido todos los archivos y al intentar abrir el index.php me da el mismo error(aqui no he creado la base de datos porque el phpmyadmin no se inicia me da error), los errores que me da son estos :
TITULO FECHA RESPUESTAS


Warning: MySQL Connection Failed: Unknown MySQL Server Host 'host' (0) in C:\apache\htdocs\index.php on line 4

Warning: Supplied argument is not a valid MySQL-Link resource in C:\apache\htdocs\index.php on line 5

Warning: Supplied argument is not a valid MySQL-Link resource in C:\apache\htdocs\index.php on line 7

Warning: Supplied argument is not a valid MySQL result resource in C:\apache\htdocs\index.php on line 8

Warning: Supplied argument is not a valid MySQL result resource in C:\apache\htdocs\index.php on line 9

Añadir mensaje

Bueno gracias por intentar ayudarme.

Taluego y Salu2.
  #6 (permalink)  
Antiguo 26/04/2002, 21:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: foro de debate en php

Ves epplestun como te decia que tenias que subir los tutoriales a un URL .. :P ;)


Un saludo,
  #7 (permalink)  
Antiguo 27/04/2002, 16:50
Avatar de dan_arg  
Fecha de Ingreso: marzo-2002
Mensajes: 110
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: foro de debate en php

Estuve tratando de probar el foro, pero salta un error.....haber si me pueden ayudar..

Una vez creada la tabla y los distinto documentos, ingreso a index.php y no hay problema. La complicacion viene cuando hago click en &quot;añadir mensaje&quot;.
me lleva al documento &quot;formulario.php&quot;, y al fin del archivo me tira:

Warning: Undefined variable: id in C:\htdocs\htdocs\bin\foro\formulario.php on line 8

Como lo soluciono???
muchas gracias...
Daniel
  #8 (permalink)  
Antiguo 28/04/2002, 13:49
 
Fecha de Ingreso: marzo-2002
Mensajes: 22
Antigüedad: 15 años, 9 meses
Puntos: 0
Re: foro de debate en php

epplestum finalmente instale el foro, el problema estaba en el host que no era el habitual localhost.

Gracias por el tuto esta kojonudo.


PD:A ver si te animas y le metes un servicio de altas,identificacion,etc...

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:36.