Jump to content
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)){
}

 

Share this post


Link to post
Share on other 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?

Share this post


Link to post
Share on other 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.

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By 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 
    • By 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.
    • By 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.
    • By 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...

    • By 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!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.