Ir para conteúdo
Hulkstar

Sistema de mensagens não lidas.

Recommended Posts

Eu estou criando um sistema onde eu listo todas as mensagens não lidas,porém eu queria exibir a quantidade de mensagens não lidas para cada usuário,alguém saberia me auxiliar para conseguir resolver esse problema?Obrigado!

 

$list0 = $conn->prepare("SELECT mensagens.id_envia,usuarios.nickname FROM usuarios,mensagens WHERE mensagens.id_recebe = '".$usuario['id']."' AND mensagens.lido = '0' GROUP BY id_envia");
$list0->execute();
while($listaMensagens = $list0->fetch(PDO::FETCH_ASSOC)){
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, Williams Duarte disse:

https://www.php.net/manual/pt_BR/pdostatement.rowcount.php

+

ID do usuário armazenado na sessão, junto ao select.

 

Eu cheguei a tentar isso,porém ele me retorna o número de usuários que me enviaram mensagem,eu queria que me retornasse o número de mensagens que não foram lidas de acordo com cada usuário,tem alguma dica para me ajudar a jeitar isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Além do que foi apresentado pelo @Williams Duarte você pode optar por uma coluna tipo "unread" se o usuário selecionou a mensagem faria um update mudando essa mensagem como lida.

 

Só não apresento uma query por desconhecer a estrutura de sua tabela de mensagens.

 

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

  • Conteúdo Similar

    • Por Sapinn
      Salve! Estou desenvolvendo um sistema de mensagens para o meu site no qual o ADM envia a mensagem para todos os usuarios ou ele pode digitar o email de um usuaio e será enviado apenas para este usuario especifico, além disso, o usuario recebe um tipo de notificação que informa que tem uma nova mensagem. O problema está sendo justamente nesta segunda parte não consigo pensar em uma logica para que a mensagem destinada a apenas um usuario so seja notificado ele.
      Alguém pode me ajudar
      vejam meu codigo
       
      <?php //conexao com o banco de dados include '../php/conexao.php'; //pega a tabela mensagem $query = mysql_query("select * from mensagem")or die(mysql_error //ver todos os dados que tem nela while($mensagem = mysql_fetch_assoc($query)){ //verifica na tabela ler se o codigo do aluno é igual ao codigo do usuario logado se tem alguma mensagem na tabela e se o email do destinatario é igual //ao do usuario logado $ver = mysql_query("SELECT * FROM ler where codigo_aluno='".$row['id']."' and codigo_mensagem= '".$mensagem['id']."' and destinatario ='".$row['email']."'")or die(mysql_error); } //se for igual ao 0 ou seja não tiver tudo ok significa que ele não leu a mensagem então mostra a notificação if(mysql_num_rows($ver) == 0){ ?> <span class="app-menu__label">Mensagens</span> <i><img src="../img/icone/menu/sino_mensagem.png" width="26px" height="26px"></i></a> </li> <?php //se não ele não mostro porque ela já foi lida }else{ ?> <span class="app-menu__label">Menssagem</span></a> </li> <?php } ?> Preciso de ajuda acho que o erro é na minha logica 
    • Por Thyago Henrique
      Bom dia pessoal!!

      Alguém saberia me dizer se existe alguma forma de se enviar mensagens para o whatsapp através do PHP? 

      Desde já, agradeço pela atenção.
    • Por fideles
      Fala galera, tudo na paz ?
       
      Veja se alguém me da uma luz por favor, já tentei de tudo o que eu conheço, e nada.
       
      <?php $nvaga = 257 OR 258 OR 259 OR 259; $vagas_rotativas = $nvaga; ?> <?php $resultado = $vagas_rotativas ; if($resultado = "" ){ echo "<font color='green' size='2'><strong>H&aacute; vagas dispon&iacute;veis</strong></font>"; } elseif($resultado = 257 ){ echo "<font color='red' size='2'><strong>N&atilde;o h&aacute; vagas dispon&iacute;veis</strong></font>"; } elseif($resultado = 258 ){ echo "<font color='red' size='2'><strong>N&atilde;o h&aacute; vagas dispon&iacute;veis</strong></font>"; } elseif($resultado = 259 ){ echo "<font color='red' size='2'><strong>N&atilde;o h&aacute; vagas dispon&iacute;veis</strong></font>"; } elseif($resultado = 260 ){ echo "<font color='red' size='2'><strong>N&atilde;o h&aacute; vagas dispon&iacute;veis</strong></font>"; } ?> O que acontece é que tenho um sistema de vagas rotativas, onde eu libero as vagas de acordo com os pedidos e se tiver também, o que queria era exibir para o usuário quando todas as vagas tiverem cheias.
      Como faço hoje: A pessoa solicita via formulário, grava no BD, depois eu vejo quais são as solicitações e no campo do formulário chamado "nvaga" eu informo o número da vaga.
       
      Eu não to conseguindo mostrar para o usuário se tem vagas ou não:
      Por exemplo: Liberei a vagas 257, 258 e 259 mais a 260 ainda está livre, gostaria que seja exibida que "Há vagas rotativas" 
      Se preencher todas as vagas 257, 258, 259 e 260 mostrar "Não há vagas rotativas" 
       
      Acho que deu para entender o que to tentando fazer.
    • Por Thiago Sales
      Olá pessoal, estou com uma dificuldade em criar um sistema de chat/conversa similar ao Facebook e outras redes sociais e aplicativos em si.

      O meu sistema atualmente está funcionando assim: O usuário envia a mensagem e ele não formata em chat, ele exibe em formato de mensagens, já tentei utilizar o MAX e GROUP BY lendo alguns tópicos do fórum e não obtive sucesso.

      Atualmente meu sistema funciona assim:

      1º O banco de dados tem as seguintes estruturas:



      //Tabela Mensagens
      int id AUTO_INCREMENT;
      varchar id_de;
      varchar id_para;
      varchar id_chat; // Não utilizado
      text mensagem;
      varchar data;
      varchar hora;
      int lido DEFAULT(0);


      2º Eu utilizo um formulário para selecionar a mensagens do usuário, e nela utilizo a seguinte query


      $query = "SELECT * FROM mensagens WHERE id_para = '$para' ORDER BY id DESC";


      3º Eu utilizo a seguinte query para selecionar as mensagens entre os usuários que estão conversando


      $query = "SELECT * FROM mensagens WHERE (id_de = '$usuario' AND id_para = '$para') OR (id_de = '$para' AND id_para = '$usuario') ORDER BY ID DESC";



      Bom, atualmente é assim que ele retorna as mensagens ao invés de retornar em grupo: {O mesmo código na versão web e na android}


      - Eu estava lendo alguns tópicos no fórum e em uma resposta eu li que deveria criar um banco de dados temporário, mas eu não entendi muito bem, e não encontrei nada similar.

      O que eu queria pelo-menos era selecionar a última mensagem enviada de cada usuário, assim ele apareceria uma mensagem de cada usuário, acho que é assim que alguns funcionam, mas não estou encontrando um jeito certo de fazer isso.

      Alguém poderia dar uma dica, ou método? Obrigado...

    • Por gabrielduarte
      Alguém sabe como fazer para exibir mensagens de erro e de sucesso em um sistema sem que precise usar variável via $_GET?
       
      Atualmente estou usando, por exemplo:
       
      ../index.php?er=loginError
      ../index.php?er=loginSuccess
       
      Alguém pode me ajudar?
      Obrigado!
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.