Ir ao conteúdo
  • Cadastre-se
Mitnick8

PHP Mensagem como lido \ não lido

Recommended Posts

Bom dia,

 

             Estou criando um portal de avisos e estou precisando criar uma função que marque as mensagens que foram criadas como não lidas, após o usuário clicar e visualizar a mensagem ficar marcado como mensagem lida. Um exemplo seria o fórum, quando alguém cria um tópico novo, aparece para os usuários que há algum novo, entretanto após clicar fica como lido, mas para o usuário que clicou, os outros que não clicaram fica como não lido.

 

           Estou sem nenhuma lógica pra criar, se alguém puder me dar uma luz agradeço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

É só implementar no banco de dados, na tabela das mensagens, o atributo lido: char, e quando o usuário clicar ma mensagem escreve no banco no atributo lido, o valor 's'. Mas quando for listar as mensagens terá que ler esse atributo para marcar as mensagens como lidas ou não lidas, geralmente as não lidas podem ficar em negrito, é só recuperar o valor, colocar em uma variável javascript e fazer um if: se 's', sem negrito, se 'n', negrito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas tem alguma ideia de como fazer, já que teria que ser para cada usuário.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Implementando no banco de dados, a mudança vai pra todos os usuários.

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Mitnick8 Basicamente a solução do colega é bem válida e funciona da seguinte forma:

 

Você terá uma tabela no banco de dados chamada mensagens

Nele terá os seguintes campos:

  • ID auto increment INT 11 Primary Key
  • ID_remetente INT 11 Foreign Key
  • ID_destinatario INT 11 Foreign Key
  • Mensagem MEDIUMTEXT 
  • Data DateTime
  • Lido TINYINT

Populado ficaria assim:

 

ID ID_remetente  ID_destinatario Mensagem       Data                 Lido
1      1              2          Olá como vai?  2018-06-09 21:47:00   0

No momento que o destinatário abrir a mensagem, você faz um UPDATE no campo "Lido"  para "1"  Porque? O tipo TINYINT recebe  zero ou um. Zero = false   um = true

 

Então a instrução SQL seria:

UPDATE mensagens
SET Lido = 1
WHERE ID_destinatario = 2

 

O messenger do Facebook funciona assim!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×