Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/06/2006, 21:28
Avatar de caneva
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."