Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite,tenho um portal de notícias em php,onde as notícias são armazenadas no banco de dados,criei uma coluna chamada view para verificar a quantidade que as notícias são visualizadas,em um outro código consigo exibir a quantidade total de que essas noticias foram visualizadas. adquirindo todas as noticias e suas visualizações.
O que eu gostaria de saber é o seguinte,existe uma possibilidade de pegar apenas os dados que são inseridos na hora,dia,mês de acordo com que aumenta no banco de dados ou seria preciso fazer algo mais complexo,separando uma tabela para inserir o tempo dos views.
Portal é esse
Agradeço.
Olá Maike,obrigado por sua resposta,acredito que não tenha conseguido me expressar direito,
Tenho uma coluna chamada views para cada noticia,de acordo com as visualizações essa coluna aumenta com um include para 1,2,3,4,5,6 na coluna view.
Onde eu vejo quantas vezes foi visualizado a notícia minha dúvida é se eu consigo buscar o total de vezes foi visualizada todas as notícias juntas,mas gostaria de saber se possui alguma função para eu retirar apenas a quantidade de vezes foi visualizado de acordo com o tempo.
Exemplo
Noticia 1 foi visualizado 100 vezes(total) 50(semana) 20(dia) 10(hora)
Noticia 2 foi visualizado 90 vezes(total) 30(semana) 10(dia) 5(hora)
apenas através da coluna views? ou preciso criar algo mais.
agradeço
Eu tentaria manipular a data e criar um campo SETE que tivesse a contagem das visualizações nos ultimos sete dias ali nele,
e depois os que tiverem maior no sete, iria aparecer,
Mas eu não sei como isso é possivel fazer, talvez se você tentar quebrar a cabeça com manipulação de data e conseguir fazer uma contagem por dia
>
Olá Maike,obrigado por sua resposta,acredito que não tenha conseguido me expressar direito,
Tenho uma coluna chamada views para cada noticia,de acordo com as visualizações essa coluna aumenta com um include para 1,2,3,4,5,6 na coluna view.
Onde eu vejo quantas vezes foi visualizado a notícia minha dúvida é se eu consigo buscar o total de vezes foi visualizada todas as notícias juntas,mas gostaria de saber se possui alguma função para eu retirar apenas a quantidade de vezes foi visualizado de acordo com o tempo.
Exemplo
Noticia 1 foi visualizado 100 vezes(total) 50(semana) 20(dia) 10(hora)
Noticia 2 foi visualizado 90 vezes(total) 30(semana) 10(dia) 5(hora)
apenas através da coluna views? ou preciso criar algo mais.
agradeço
kkkk caramba cara eu demorei um pouquinho para fazer mais era mais simples que eu pensava, pelo que você informou você quer
quantas visualizações teve nas ultimas horas tipo 10:00 as 11:00 do dia atual
no dia e no mês, se for isso mesmo faça assim que você consegue, caso queira adicionar alguma regra acho que você ja consegue fazer
select
(select sum(view) from noticias where (data_not between date_sub(now(), interval 1 month) and now())) as 'entre1m',
(select sum(view) from noticias where (data_not between date_sub(now(), interval 1 day) and now())) as 'entre1d',
(select sum(view) from noticias where (data_not between date_sub(now(), interval 1 hour) and now())) as 'entre1h'
usei os seguintes dados e funcionou corretamente.
/applications/core/interface/imageproxy/imageproxy.php?img=http://uploaddeimagens.com.br/images/000/140/214/full/mysql.png&key=9f1cc61d627f9c4406fcc15530c7adea1b39572e8c9174931024ebbb2346c1b1" alt="mysql.png" />
se ajudou clica /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_images/imasters/rep_up.png&key=69f1cee84b0cec2770cf4978eb26283900cc6cd53272a52e2e7da158a809e582" alt="rep_up.png" /> e marca como resolvido :)
Erison eu usei esse script
$dia = $_GET[dia];$mes = $_GET[mes];
$ano = $_GET[ano];
// PEGA DIA, MÊS E ANO
if(empty($dia)){
$dia = date("d");
} else {
$dia = $dia;
}
if(empty($mes)){
$mes = date("m");
} else {
$mes = $mes;
}
if(empty($ano)){
$ano = date("Y");
} else {
$ano = $ano;
}
$hora = date("H");
$mesVai = intval(date('t', mktime(0, 0, 0, intval($mes), 1, intval($ano))));
$dia1 = $dia-$dia+1;
$dataH = "$ano-$mes-$dia";
$dataA = "$ano-$mes-$dia1";
$diaS = $dia-date("w"); $diaS = "0".$diaS;
}
//echo "$diaS";
$dataS = "$ano-$mes-$diaS";
$est_hora = "select sum(view) from noticias where (data between '$dataH $hora:00:00' AND '$dataH $hora:59:59')";
$est_horaa = mysql_num_rows(mysql_query($est_hora));$est_horaaa = mysql_num_rows(mysql_query($est_hora));
Porém o único resultado que sai é 1
A quantidade em geral de notícias aumenta porém o 1 não.
Usei da forma que me passou também,porém não mostra resultado.
>
Erison eu usei esse script
$dia = $_GET[dia];$mes = $_GET[mes];
$ano = $_GET[ano];
// PEGA DIA, MÊS E ANO
if(empty($dia)){
$dia = date("d");
} else {
$dia = $dia;
}
if(empty($mes)){
$mes = date("m");
} else {
$mes = $mes;
}
if(empty($ano)){
$ano = date("Y");
} else {
$ano = $ano;
}
$hora = date("H");
$mesVai = intval(date('t', mktime(0, 0, 0, intval($mes), 1, intval($ano))));
$dia1 = $dia-$dia+1;
$dataH = "$ano-$mes-$dia";
$dataA = "$ano-$mes-$dia1";
$diaS = $dia-date("w"); $diaS = "0".$diaS;
}
//echo "$diaS";
$dataS = "$ano-$mes-$diaS";
$est_hora = "select sum(view) from noticias where (data between '$dataH $hora:00:00' AND '$dataH $hora:59:59')";
$est_horaa = mysql_num_rows(mysql_query($est_hora));$est_horaaa = mysql_num_rows(mysql_query($est_hora));
Porém o único resultado que sai é 1
A quantidade em geral de notícias aumenta porém o 1 não.
Usei da forma que me passou também,porém não mostra resultado.
dei a receita do bolo, ainda quer que eu coloque no forno?
mais em fim você
deve fazer assim
$sql = "select
(select sum(view) from noticias where (data_not between date_sub(now(), interval 1 month) and now())) as 'entre1m',
(select sum(view) from noticias where (data_not between date_sub(now(), interval 1 day) and now())) as 'entre1d',
(select sum(view) from noticias where (data_not between date_sub(now(), interval 1 hour) and now())) as 'entre1h'";
$result = mysql_query($sql)or die(mysql_error());
while($row = mysqli_fetch_array($result))
{
echo " mês = " . $row['entre1m']. "<br />";
echo " dia = " . $row['entre1d']. "<br />";
echo " hora = " . $row['entre1h']. "<br />";
}
dessa forma ai vai retornar como quer.
não esta bem identado por que peguei essa query do net, por que faz muito tempo que não uso mysql_query nem lembrava mais.
mais em fim esta ai a sua solução espero ter ajudado
OBS: por favor troque o campo data_not = seu campo de data e view = seu campo de visitas
se ajudou clica /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_images/imasters/rep_up.png&key=69f1cee84b0cec2770cf4978eb26283900cc6cd53272a52e2e7da158a809e582" alt="rep_up.png" /> e marca como resolvido.
Vlw por sua paciência :)
Ajudou muito.
Boa noite amigo,
Você coloca um campo a mais na sua tabela informando data e hora e na hora da consulta você faz suas limitações
se seu banco for mysql use o LIMIT 0,10 e ORDER BY data
assim você vai limitar a quantidade de notícias de acordo como queira e organizar pela data...