Foros del Web » Creando para Internet » Diseño web »

Servicio de mensajeria con php??

Estas en el tema de Servicio de mensajeria con php?? en el foro de Diseño web en Foros del Web. Hola, estoy haciendo una pagina web y queria que una de las secciones (2 en realidad) sean dedicadas al servicio de mensajeria y automensajes (notas). ...
  #1 (permalink)  
Antiguo 01/07/2010, 20:26
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
Servicio de mensajeria con php??

Hola, estoy haciendo una pagina web y queria que una de las secciones (2 en realidad) sean dedicadas al servicio de mensajeria y automensajes (notas). Con esto no me refiero a mandar e-mails sino a mensajes instantaneos que puedan mandarse los usuarios entre si cuando esten online ( o no).

Estoy trabajando en php, MySQL, AJAX.

En un principio empece haciendo este asunto con una simple tabla en la bbdd, donde los campos van a pares (el titulo y el mensaje), asi t1, mens1, t2, mens2,...

No obstante al ponerme con este asunto, me resulta bastante engorroso todo esto, no se si me explico:

he tenido que crear tablas embebiendo codigo php en html, luego esta el tema del ajax, ademas la base de datos me esta dando muchos problemas con el tema de ponerles unos nombres fijos a los campos, al borrar un mensaje la tabla no mueve todos los mensajes un lugar, quedando ese hueco libre.....el nº max de mensajes,etc...

Es decir, me parece que es un sistema demasiado "cutre"...

llevo tiempo preguntandome si habra alguna aplicacion que pueda interaccionar con php,... y que me permita hacer esto de una manera mas "liviana".

gracias!

Última edición por oms02; 01/07/2010 a las 20:32
  #2 (permalink)  
Antiguo 02/07/2010, 07:35
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Servicio de mensajeria con php??

¿sabes los conceptos de Primary key, indexación y SQL en base de datos?, porque internamente al eliminar un registro, si queda el denominado hueco, pero el DBMS se encarga de ello y te permite trabajar con la tabla sin problemas y no veo el porque de tu argumento a menos que manipules los registros por posición cosa que es inadecuada, para ello existe el primary key (PK).

los nombres de los campos son fijos, si necesitas un modelo flexible en donde el campo cambie de nombre lo recomendable es establecer un modelo relacional en donde el valor de una campo se relacione con una entidad débil y así puedas emular ese comportamiento, el típico caso de almacenar los meses con 12 campos por mes, se resuelve con uno solo y la tabla relacionada.
  #3 (permalink)  
Antiguo 02/07/2010, 08:28
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: Servicio de mensajeria con php??

Hola maycolalvarez. gracias por contestar.


precisamente estoy perdido en este asunto: en como hacer la tabla de notas (o mensajes).

Trabajo con el primary key en el primer campo (id), y en los demas campos tengo los mensajes y los titulos de éstos.

Los nombres de los campos son:

id (primary key)
tnota1
nota1
tnota2
nota2
tnota3
nota3
...
asi hasta 20 he hecho.

Ahora, con esta configuracion no puedo borrar ningun registro si alguien quiere borrar un mensaje, sino que he de usar un UPDATE y dejarlo en blanco. Si borro el registro, borro de golpe todos los mensajes de ese usuario, y si borro el campo, elimino toda esa columna con los mensajes notaX de todos los usuarios...

No se si me explico....

Si hace falta que ponga el codigo, dime.

1 saludo y gracias!
  #4 (permalink)  
Antiguo 02/07/2010, 08:47
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Servicio de mensajeria con php??

he allí el problema, debes de crear un modelo de tablas relacionales:

tabla usuario: (id_usuario, nombre, apellido, ...)

tabla mensajes: (id_mensaje, id_usuario, id_usuario_destino, titulo, contenido)

con este simple modelo un usuario puede tener n-mensajes, solo debes aplicar la llave foránea en la tabla mensajes para asegurar la llamada integridad referencial, pero esto es solo para garantizar la integridad de los datos, no es estrictamente necesario.

tendrás que estudiar sobre manejo de bases de datos.
  #5 (permalink)  
Antiguo 02/07/2010, 15:28
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: Servicio de mensajeria con php??

Te mando dos capturas de pantalla de notas y mensajes. Creo que llevo la idea que me ponias en el mensaje, pero sigo teniendo el mismo problema. te cuento...

[URL=http://www.uploadfilesystem.com//viewimage.php?file=/imagenes/10/07/02/mRA06490.jpg][IMG]http://www.uploadfilesystem.com/thumbs/10/07/02/tn_mRA06490.jpg[/IMG][/URL]

[URL=http://www.uploadfilesystem.com//viewimage.php?file=/imagenes/10/07/02/ibv06570.jpg][IMG]http://www.uploadfilesystem.com/thumbs/10/07/02/tn_ibv06570.jpg[/IMG][/URL]


El codigo que tengo hecho funciona (mandar mensaje, guardar nota, borrar mensaje) aunque de manera bastante basica. No estoy contento con varias cosas:

1. Me veo obligado a poner en las columnas (campos) los "nombres" de los titulos y los mensajes. Esto no me gusta nada (preferiria tenerlos en las filas), pero el caso contrario me obligaria a tener una tabla con cientos y cientos de campos y no creo q sea buena idea. No veo ninguna otra manera de hacer esto, pero la "unica" que para mi existe, no me gusta....

2. He de nombrar los campos con nombres incomodos: tnotaX, notaX, autorX,...
Hasta ahora he conseguido escurrirme de todos los problemas embebiendo php en las id...ya sabes....pero vamos...me parece un metodo un poco "prehistorico" teniendo ahora js y demas...

3. El tercer problema gordo que me encuentro en este asunto es que cuando borro un mensaje, este queda en blanco (ya que no puedo eliminar nada). Esto me deja un campo vacio en medio de todos los demas....No me gusta tp, me crea problemas.

4. No entiendo un par de cosas. Lo de las tablas relacionales.....no veo pq tengo que hacer eso...es decir, en que punto las necesito de manera obligatoria. Por otro lado, no entiendo la manera de poder tener n mensajes.....es decir, creo q puedo poner n campos, pero....me acabará creando problemas con el tiempo para leer toda la tabla...no??


Bueno, ahi estan las principales movidas.....

Muchisimas gracias por echarme un cable, de verdad

Última edición por oms02; 02/07/2010 a las 15:36
  #6 (permalink)  
Antiguo 02/07/2010, 23:38
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Servicio de mensajeria con php??

Pues no, no entendiste el punto que @maycolalvarez te comento... estas haciendo lo mismo que en un principio agregando mas campos, cuando es completamente lo contrario...


Para comenzar debes tener una tabla con los datos de los usuarios que van a interactuar (que se van a enviar los mensajes)

tabla usuarios
id => int, auto increment, primary key
user => varchar

Luego tenemos la tabla mensajes
id => int, auto increment, primary key
idUser => int
idUserDest => int
mensaje => varchar|text

Al final, tendrías que cada usuario tiene un id único
user1 => 1
user2 => 2
user3 => 3
etc...

Aquí ya se facilita todo con la tabla mensajes, ahora imaginemos que el user1 le envia un mensaje al user2
id => 1
idUser => 1
idUserDest => 2
mensaje => 'aquí tu mensaje'

Ahora para la respuesta seria...
id => 2
idUser => 2
idUserDest => 1
mensaje => 'respuesta al mensaje anterior'

Como vez todo queda ordenado y se pueden enviar tantos mensaje sean necesarios entre infinidad de usuarios

El porque de las tablas relacionadas es porque al final se tiene muchísimo mas control sobre los datos ingresados (así como los editados/borrados), aparte que el sistema se hace liquido, lo que significa que no importa el numero de mensajes que envié/reciba un usuario...

Tal y como tu mismo lo has dicho, el sistema que utilizas es arcaico y erróneo, tendrás 1 y mil problemas mas si sigues intentando hacerlo como hasta ahorita
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 03/07/2010, 05:27
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 13 años, 10 meses
Puntos: 11
Respuesta: Servicio de mensajeria con php??



Si señores. Muchisimas gracias a ambos. De verdad.

No entiendo como leches no lo habia visto antes.

1 saludo y gracias de nuevo; me acabais de evitar muchos dolores de cabeza.

Etiquetas: mensajeria, php, servicio
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 18:19.