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, tenho uma tabela no mysql onde eu gravo a quantidade de clicks que a materia recebeu sempre que a pagina é acessada, porém eu gostaria de saber se tem como adicionar +1 ao campo clicks somente se o ip que esta acessando a noticia nao estiver em uma lista.
Exemplo: o ip 200.0.0.1 acessou a materia pela primeira vez, assim o campo clicks ganharia +1 no seu valor e o ip 200.0.0.1 iria pra uma lista e ips que ja acessaram a materia, sendo assim se ele acessar a materia novamente nao contaria como click e nao seria adicionado +1 no campo clicks novamente...
Nao sei se eu fui bem claro, me desculpem, qualquer coisa podem perguntar
Aqui vai os campos da tabela Noticias
CREATE TABLE IF NOT EXISTS `noticias` (
`id` int(11) NOT NULL auto_increment,
`hora` varchar(255) NOT NULL,
`data` varchar(255) NOT NULL,
`mes` varchar(255) NOT NULL,
`ano` varchar(255) NOT NULL,
`titulo` varchar(255) NOT NULL,
`subtitulo` varchar(255) NOT NULL,
`texto` text NOT NULL,
`miniatura` varchar(255) default NULL,
`categoria` varchar(255) default NULL,
`clicks` int(11) default NULL,
`publicado` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=14749;
Obrigado desde já!>
Ué...persiste o ip em algum lugar,checa se o $_SERVER['REMOTE_ADDR'] ta persistido...se não tiver puxa quantos clicks akela matéria tem e persiste a quantidade de clicks + 1.
Abraço!
o problema eh que eu nao sei como fazer isso hehehe =) estou iniciando no php
como ficaria no arquivo listar
listar.php
$id = $_GET['id'];
if(isset($id)) {
include "./conectando/comum.php";
include "./conectando/comumlistar.php";
$sql = "SELECT * FROM noticias WHERE id_noticia = $id";
$res = comumlistar($conect,$sql);
echo "<table width=100% cellpading=0 cellspacing=0>";
while ($linha = mysql_fetch_array($res))
{
echo "<tr bgcolor='#f2f2f2'>";
echo "<td>".$linha['id_noticia']."</td>";
echo "<td>".$linha['nm_data']."</td>";
echo "<td>".$linha['nm_horario']."</td>";
echo "<td>".$linha['nm_titulo']."</td>";
echo "<td>".$linha['nm_intertitulo']."</td>";
echo "<td>".$linha['nr_cliques']."</td>";
echo "</tr>";
}
echo "</table>";
}
Modifiquei a tabela. agora ta assim:
CREATE TABLE `noticias` (
`id_noticia` INT(10) NOT NULL AUTO_INCREMENT,
`nm_data` VARCHAR(50) NULL,
`nm_mes` VARCHAR(50) NULL,
`nm_ano` VARCHAR(50) NULL,
`nm_horario` VARCHAR(50) NULL,
`nm_jornalista` VARCHAR(50) NULL,
`nm_titulo` VARCHAR(255) NULL,
`nm_intertitulo` VARCHAR(255) NULL,
`nm_texto` LONGTEXT NULL,
`nr_cliques` INT(10) NULL,
`nm_publicar` VARCHAR(50) NULL,
PRIMARY KEY (`id_noticia`),
INDEX `id_noticia` (`id_noticia`)
)
ENGINE = MyISAM;
Ué...persiste o ip em algum lugar (juntamente com o nome da matéria visualizada),checa se o $_SERVER['REMOTE_ADDR'] ta persistido junto do nome da matéria...se não tiver puxa quantos clicks akela matéria tem e persiste a quantidade de clicks + 1 persiste também o ip e o nome da matéria.
Abraço!