Foros del Web » Programando para Internet » PHP »

Chat con PHP y MySQL

Estas en el tema de Chat con PHP y MySQL en el foro de PHP en Foros del Web. Hola Estoy creando un pequeño chat con php y mysql. Tengo "casi" todo listo, sólo que no encuentro la forma de que sólo aparezcan los ...
  #1 (permalink)  
Antiguo 02/08/2009, 17:25
 
Fecha de Ingreso: julio-2009
Mensajes: 6
Antigüedad: 14 años, 9 meses
Puntos: 0
Chat con PHP y MySQL

Hola

Estoy creando un pequeño chat con php y mysql. Tengo "casi" todo listo, sólo que no encuentro la forma de que sólo aparezcan los 20 últimos mensajes del chat y el resto (los que no están dentro de este rango) se vayan borrando de la base de datos.

¿Alguien tiene una idea o un código similar que le funcione?
  #2 (permalink)  
Antiguo 02/08/2009, 17:41
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 9 meses
Puntos: 150
Respuesta: Chat con PHP y MySQL

Cita:
Iniciado por BorisCastillo Ver Mensaje
Hola

Estoy creando un pequeño chat con php y mysql. Tengo "casi" todo listo, sólo que no encuentro la forma de que sólo aparezcan los 20 últimos mensajes del chat y el resto (los que no están dentro de este rango) se vayan borrando de la base de datos.

¿Alguien tiene una idea o un código similar que le funcione?

Yo queria algo asi para mi web y encontre un sistema que usa archivos txt (creo que es mas recomendable que usar base de datos, a no ser que lo hagas para aprender), se llama yshout, buscalo por ahi si te interesa. Yo lo modifique a mi gusto para que automaticamente usaran el nick de mi base de datos.

Para lo que tu dices que solo salgan los ultimos 20 mensajes, la clave esta en la sentencia MYSQL. Te dejo un ejemplo

Select * from mensajes ORDER BY ID DESC LIMIT 0,20

Esto te serviria en el caso de que cada registro del mensaje le tengas un campo ID que vaya autoincrementandose, asi lo ordena de mayor a menor y lo limita a los 20 primeros.

Y con este post inauguro mi presencia en este foro xD saludos.
  #3 (permalink)  
Antiguo 02/08/2009, 17:51
 
Fecha de Ingreso: julio-2009
Mensajes: 6
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Chat con PHP y MySQL

Gracias por tu respuesta.

Mira, ya he utilizado esa sentencia y tengo un campo PRIMARY, llamado id con auto-incremento, pero no he logrado crear lo que necesito. La sentencia que me dices muestra los 20 primeros, pero después, al agregar el 21 no lo muestra. Necesito una sentencia para ir borrando los menores que "el mayor - 20". Se que existe algo como max(id) para obtener el valor de id mayor, pero no sé, no se me ocurre....

El tema es que quiero agregar eso a mi juego online (tipo Travian, pero en contexto diferente), me falta eso y me gustaría agregarlo.
  #4 (permalink)  
Antiguo 02/08/2009, 18:27
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 14 años, 9 meses
Puntos: 150
Respuesta: Chat con PHP y MySQL

Con esta sentencia obtenemos el ID ubicado en la posicion 20 empezando por el final. No soy ningun experto, justo resolviendo otra duda aprendi lo del OFFSET jeje.

select ID from mensajes order by ID DESC LIMIT 1 OFFSET 19

Bueno, una vez tenemos ese valor, ya solo tendriamos que hacer un....

delete from mensajes where ID<(select ID from mensajes order by ID DESC LIMIT 1 OFFSET 19)


Por cierto, me registre hoy en este foro para ver si habia otros programadores de juegos masivos en php+mysql, yo tengo el mio en modo Beta desde hace unos meses, es soulheroes.com , a ver si me dices el tuyo, no estaria mal juntarnos 10 o 20 desarrolladores de este tipo de juegos y ayudarnos un poco entre todos :) saludos
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 23:20.