Foros del Web » Programando para Internet » PHP »

hacer algo parecido a los foros .. respuesta a mensaje

Estas en el tema de hacer algo parecido a los foros .. respuesta a mensaje en el foro de PHP en Foros del Web. estoy haciendo una pagina donde los usuarios meten datos en la bd mysql y estos mensajes se muestran en la pagina web correspondiente.. lo que ...
  #1 (permalink)  
Antiguo 16/06/2006, 18:24
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 3 meses
Puntos: 1
hacer algo parecido a los foros .. respuesta a mensaje

estoy haciendo una pagina donde los usuarios meten datos en la bd mysql y estos mensajes se muestran en la pagina web correspondiente.. lo que quiero hacer como ocurre en en este foro que se le pueda responder algo como esto

titulo:
mensaje: bbabaaabbaslskdsdsdlsdsdsdsdls

respuesta:rrrrerewfdsefwwwewewwewe

el menu seria:

publicar mensaje
responder mensaje

en publicar mensaje es un formulario donde a traves de php inserto en una bd en una tabla

en responder mensaje es otro formulario (cada mensaje tendria un id) este id lo pondria el usuario en el formulario y esto lo insertaria en la bd pero en otra tabla respondiendo el otro mensaje..

esto queria saber como lo podria hacer necesito orientacion gracias se insertar los datos en una bd y volcarlo a la pagina php
  #2 (permalink)  
Antiguo 16/06/2006, 21:28
Avatar de caneva  
Fecha de Ingreso: junio-2006
Ubicación: Sevilla (España)
Mensajes: 81
Antigüedad: 17 años, 10 meses
Puntos: 1
Te recomiendo lo siguiente:

Por un lado deberías tener bien organizada la base de datos, te recomiendo una estructura básica de dos tablas, una para el tema recien abierto y otra para las contestaciones. Seguiría el siguiente esquema:

Nombre de la base de datos para el ejemplo: bd
TablaPost:
tp_id | usuario | contenido

TablaReplys:
tr_id | tp_id | usuario | contenido

Los campos tp_id y tr_id deben ser campos autoincrement, de forma que cada vez que insertes un dato en la base de datos el valor se incremente automáticamente sin que tu tengas que intervenir, así luego al hacer la llamada a la bd puedes decirle que los ordene por ese valor de forma descendente (de mayor a menor) por lo tanto mantendrás los post más nuevos al principio.

De manera que cuando quieras mostrar los post principales solamente tengas hacer una llamada a la bd a la tabla TablaPost:

select * from bd order by tp_id desc

Y cuando quieras mostrar un post concreto, con sus correspondientes respuestas (replys) hagas dos llamadas a la base de datos (bd):
Una principal para mostrar el post en cuestión y una segunda donde le dices a la bd que quieres que te coja solo los replys que corresponden a cierto post, es decir, a cierto tp_id que puedes almacenar en una variable después de la llamada anterior a la base de datos, por ejemplo: $numero_del_post

select * from bd where tr_id=$numero_del_post order by tr_id

En esta última llamada no indicamos desc porque nos interesa que muestre las últimas respuestas al final, es decir, asc que es el valor por defecto si no indicamos nada.
__________________
Cita:
"El camino empieza renunciando al control, y volviéndose flexibles."
  #3 (permalink)  
Antiguo 17/06/2006, 07:08
 
Fecha de Ingreso: enero-2002
Ubicación: Lima
Mensajes: 461
Antigüedad: 22 años, 3 meses
Puntos: 1
Gracias caneva por tu respuesta.. en cuanto a la organizacion de la bd si la habia echo en dos tablas una para el tema recien abierto y otro para respuesta y le habia puesto un campo igual en mi caso id . eso es para relacionar ambas tablas no? tambien le habia puesto autoincrement.

en donde no tengo claro es esto donde dices:


Código:
Y cuando quieras mostrar un post concreto, con sus correspondientes respuestas (replys) hagas dos llamadas a la base de datos (bd):
osea la primera llamada seria

Código:
select * from bd order by tp_id desc
luego de esta llamada tendria que alamcenar en una variable tp_id

Código:
$numero_del_post = tp_id
y luego la segunda llamada:

Código:
select * from bd where tr_id=$numero_del_post order by tr_id
y esto me tendria que aparecer en respuestaen los post que tendrian respuesta

algo como

post: mensaje del usuario
respuesta:respuesta de otro usuario

esto es lo que entendi esta bien?
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 13:58.