Array
(
)

Verificador de Msg novas em php

PHP
Israel Bango
   - 22 nov 2014

Boa noite! para ti que estas lendo esta Msg.
Estou com alguma dificuldade de como escrever um trecho de código que verifica se existe uma nova msg no banco.
estou fazendo isto de maneira dinâmica sempre que vou registrando um novo ele mostra o registro
sem rodar de novo a página, estou usando o ajax para fazer a requisição do documento que tem os procedimentos
de consulta no DB e a funçao setInterval para executar em cada um segundo até ali ele está funcionando bem!
mas eu quero que sempre que registrar nova msg primeiro me retorne um alert como por exemplo você tem uma nova
nova msg e só depois mostra a msg, não tenho uma noção de como fazer isto alguém pode me ajudar por favor estou mesmo
necessitando para um trabalho importante na escola.
estou passando o código para vocês analisarem obrigado
O script que faz a requisição do documento que tem os procedimentos da consulta no DB
#Código

 
function requisitar(){
            var xmlhttp;
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
                 xmlhttp=new XMLHttpRequest();
            }
            else 
            {// code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            xmlhttp.onreadystatechange = function()
            {
                if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {                
                				document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
                   
				}
            }
            xmlhttp.open("GET","myfile.php",true);
            xmlhttp.send();
        }

        window.setInterval(requisitar, 1000);
 


Faz consulta no banco e mostra as msg
#Código
<?php
    include("conexao_dba_php.php");
  session_start();
  
  
	
$verifcar = mysqli_query($conexao, "SELECT mensagem,id_usuario,id_para FROM msg where id_para='$id_usuario' ") or print(mysqli_error($conexao));	 
       $row = mysqli_num_rows($verifcar);
	   
  if($row > 0){
  while($resultado = mysqli_fetch_object($verifcar)):
    
    echo "Enviado por $resultado->id_usuario</p>";
	 echo"<div style='border:ridge;background-color:#fff'>";echo "$resultado->mensagem "; 	 echo"</p>";echo"</div>";
	 echo"</p>";
	echo"<a href='formulario_Msg.php'>Responder</a>"; echo"</p>";
   
   endwhile;
  }

    
  ?>

Wellington Silva
   - 23 nov 2014

Coloque mais um campo na sua tabela, por exemplo: #Código

status tinyint(1)


E verifica no seu código o campo status, 1 para nova mensagem e 0 para mensagens ja lidas.
A partir dai é só emitir um alerta caso o status seja 1

Israel Bango
   - 23 nov 2014

Obrigado Wellington R. da Silva já adicionei o campo na minha tabela
mas como faço para verificar? quando uma nova msg estiver no banco
este campo que adicionei recebe o valor de 1? ou gravo sempre o valor neste campo
sempre que eu for enviar uma msg?
por favor se der para escrever um trecho básico do código por favor!

Wellington Silva
   - 23 nov 2014

Isso, no seu script que insere a mensagem no banco de dados vc acrescenta esse campo que criou e define o valor de 1 como padrao.
E quando vc ler a mensagem vc faz um update mudando para 0.

Lembrando que existe formas melhores de resolver o seu problema, citei uma que acho mais simples de explicar pois não estou na frente do PC.

Israel Bango
   - 23 nov 2014

Okay! Obrigado Wellington R. da Silva vou tentar implementar com as dicas que me deste!