Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala galera.
Estou precisando de contar a quantidade de linha que tem em uma tabela no banco e verifica e foi inserida uma nova linha se
foi inserido executa uma ação se não nenhuma ação e feita.
OBS: Isto tem que ser feito apenas dentro de uma consulta e no php, mais se alguém desenvolver a logica em outra linguagem ta valendo.
Parece ser fácil mais já quebrei muita cabeça com esta logica. Agora conto com apoio de vcs.
SinoP
Isto daria certo se eu tivesse controle das inserções, os insertes vem de outro programa, ou seja como eu especifiquei na OBS: isto tem que ser feito apenas em uma consulta.
Mas obrigado por responder, valeu a tentativa.
Use o count:
SELECT COUNT(*) AS total FROM tabela;
Mas para verificar se teve atualização, acredito que pode ter um campo datetime. Na pesquisa você compara a data e hora da última atualização.
Allex_carvalho
SELECT COUNT(*) AS total FROM tabela;
Este já estou utilizando, agora no caso do campo da data, você sugere a compara a data do sistema?
Cara como a inserção é feita por outro programa, o seu programa que faz a contagem deve ter um local para armazenar sempre a última contagem.
A lógica seria mais ou menos essa:
Comparar data e hora para ver se algum registro já contado não foi atualizado. Se foi atualizado no sistema principal, precisa ser alterado no seu também, correto?
Deixa eu explica certinho, pra vcs verem como é a situação.
Eu tenho um ajax que de tempo em tempo vai no banco e ver se tem mensagem novas.
Caso tenha alguma mensagem e essa mensagem for do ATENDENTE ele executa:
if ($quemenviou == "ATENDENTE" )
{
echo "<html>
<head>
</head>
<body>
<embed loop='1' height='5' width='5' src='som/button-09.mp3'>
</body>
</html>";
}
O problema é que toda vez que o ajax faz a verificação o áudio é tocado.
Então eu estava pensando em contar a quantidade de linha no banco e ele executaria o áudio se o valor de linha fosse diferente.
Exemplo:
if ($quemenviou == "ATENDENTE" && $atual > $anterior)
{
echo "<html>
<head>
</head>
<body>
<embed loop='1' height='5' width='5' src='som/button-09.mp3'>
</body>
</html>";
}
Mas a questão é que esta verificação tem que esta na mesma pagina, praticamente na mesma consulta, por que esta pagina vamos chamar de som.php esta " passando " ou melhor atualizada pela pagina em ajax.
Respondendo rockrgo
>
A lógica seria mais ou menos essa:
Neste caso não vejo um local diferente para armazenar a variável.
Allex_carvalho
>
Comparar data e hora para ver se algum registro já contado não foi atualizado. Se foi atualizado no sistema principal, precisa ser alterado no seu também, correto?
Tenho um campo data e tenho um campo hora, mais ainda não entendi como que seria esta verificação dentro dessa condições que citei.
A comparação seria para ver se foi atualizado o campo (levando em conta que você está clonando uma tabela). Toda vez que fizer algum update atualiza a data e hora. Se não atualizar nada, não precisa.
E a maneira mais fácil de fazer essa comparação (caso não esteja clonando) é você ter uma tabela para armazenar o total de registros no servidor principal. Assim, poderá comparar a quantidade de itens.
Estou precisando de contar a quantidade de linha que tem em uma tabela no banco e verifica e foi inserida uma nova linha se(...)
De boa, pesquise sobre triggers:
Pessoal
Eu cheguei a conclusão que dentro do único SELECT ou da mesma pagina não tem como fazer mesmo.
Tentei de varias maneiras essa foi uma delas, usei os comando no banco para ser mais rápido .
declare @qtdregistroatual int,
@qtdregistroanterior int
set @qtdregistroatual= (SELECT COUNT (*) FROM mensagem);
if (@qtdregistroatual > @qtdregistroanterior)
begin
set @qtdregistroanterior =(SELECT COUNT (*) FROM mensagem);
print 'não foi enserido';
end
se alguém quiser tentar pode fica a vontade
Bom dia amigo.
Faça da seguinte forma:
3 - Compare as contagens e caso sejam diferentes chame a função que deseja.
EX:
Sou novato em PHP mas acho que é isso ai.
Valeu.