Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos, criei uma pagina que le determinada noticia cadastrada no db, só que gostaria de adicionar a ela, cada vez que uma pessoa lê essa pagina, salva o ip dela no db e conta 1 visita (que eu irei mostrar em um relatorio de leituras de materias em outra pagina)
entao se o mesmo ip acessar a materia novamente nao conta como uma visita;
alguem pode me ajudar?
mostranoticia.php
<?
$conexao = mysql_connect("localhost","root","");
$db = mysql_select_db("teste");
$id_select = $_GET['id'];
$sql_texto = "SELECT * FROM noticias where id = $id_select";
$query_texto = mysql_query($sql_texto) or die(mysql_error());
$linha = mysql_fetch_assoc($query_texto);
$id = $linha['id_noticia'];
$titulo = $linha['nm_titulo'];
$subtitulo = $linha['nm_intertitulo'];
$texto = $linha['nm_texto'];
$data = $linha['nm_data'];
$jornalista = $linha['nm_jornalista'];
?>
<?php mysql_close(); ?>
<center>
<table width="80%" border="0" cellspacing="2">
<tr>
<td><div align="right"><?php echo $data; ?></div></td>
</tr>
<tr>
<td><div align="center"><?php echo $titulo; ?></div></td>
</tr>
<tr>
<td><div align="center"><?php echo $subtitulo; ?></div></td>
</tr>
<tr>
<td><div align="right">por <?php echo $jornalista; ?></div></td>
</tr>
<tr>
<td><div align="left"><?php echo $texto; ?></div></td>
</tr>
<tr>
<td><div align="left">Assessoria de Comunicação</div></td>
</tr>
</table>
</center>noticias (
id int(10) NOT NULL AUTO_INCREMENT,
data varchar(50) DEFAULT NULL,
mes varchar(50) DEFAULT NULL,
ano varchar(50) DEFAULT NULL,
horario varchar(50) DEFAULT NULL,
jornalista varchar(50) DEFAULT NULL,
titulo varchar(255) DEFAULT NULL,
subtitulo varchar(255) DEFAULT NULL,
texto longtext,
cliques int(10) DEFAULT NULL,
publicar varchar(50) DEFAULT NULL,
PRIMARY KEY (id),
KEY id (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4045;
Alguem pode da uma ajuda ae?
Valeu.
boa valeu, entendi +/- mas como essa nova tabela vai saber qual noticia da tabela noticias esta sendo lida para computar?
E como vou ter um retorno disso pra saber quais materias tiveram quantos cliques?
duas tabelas e um mesmo resultado parece d+ pra minha cabeca hehehee
hehe.. relaxa..
essa é a melhor forma http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
Veja.. você já não faz um select apartir do id da notícia para montar ela?
$id_select = $_GET['id'];
$sql_texto = "SELECT * FROM noticias where id = $id_select";basta jogar isso na segunda tabela.. veja que eu previ um campo: **idNoticia** para ela.
Joga esse $id_select no INSERT da segunda tabela.
Depois para saber qntos cliques teve cada matéria, você faz um SELECT COUNT idNoticia, que vai lhe trazer qntos users viram cada matéria.
beleza, tou saindo do trabalho agora, amanha eu testo e ja posto.
Valeu cara, obrigado
Ae, fiz o seguinte, adicionei isto ao final da pagina que mostra a noticia:
<?
$ip = $_SERVER['REMOTE_ADDR'];
$sql = mysql_query("SELECT idNoticia,ip FROM visitas WHERE idNoticia='$id_select' AND ip='$ip'") or die(mysql_error()); mysql_query("INSERT INTO visitas (idNoticia,ip) VALUES ('$id_select','$ip')")or die(mysql_error());
}
?>
Beleza, tentei usar o sql count pra poder mostrar os resultados agora mas nao consegui. Alguma ajuda ae? :D
Jaconsegui aqui!
Valeu pelas dicas!
Topico resolvido
você vai precisar de outra tabela.
chamada por exemplo:
"visita"
Coloca:
idVisita, idNoticia, e ipVisitante.
Assim que carregar a página você faz a query que insere o ip do visitante e a id da notícia que ele está lendo somente se ele já não estiver cadastrado. Então para isso você faz um select pelo IP do visitante, e compara se ele já leu a notícia que foi aberta.
^^ ta ai.
A lógica da coisa é essa. :lol: