KS_Scream 1 Denunciar post Postado Dezembro 30, 2012 Boa tarde pessoal. Preciso fazer um contador de cliques para um projeto, tenho o campo "click" na tabela do BD, mas não sei como fazer o contador funcionar, eu fiz até essa parte: <?php include 'inc/top.php'; require("conect.php"); $id =$_GET['id']; $sql = "UPDATE usuarios SET click='click+1' WHERE link_id='$id'"; $query = mysql_query($sql) or die (mysql_error()); if ($query){ header("Location: ".$_GET['link_url']); } else { echo 'Erro'; mysql_query($sql) or die (mysql_error()); } ?> Mas o php acusa erro sempre na mesma linha, no "header("Location: ".$_GET['link_url']);", o erro é: "Notice: Undefined index: link_url...". Tentei fazer um select depois do update e antes do header, para pegar o link, mas ele retorna o mesmo erro. Minha index está assim: <?php require("conect.php"); include 'inc/top.php'; include 'inc/menu.php'; $sql= "SELECT * FROM usuarios WHERE status=1 ORDER BY click DESC"; $query = mysql_query($sql); $qtd=mysql_num_rows($query); while ($resultado = mysql_fetch_assoc($query)) { echo ' <div class="mag"> <div class="category"> <p>'.$resultado['link_categoria'].'</p> </div> <img src="img/'.$resultado['foto'].'" alt="img"/> <div class="tittle"> <a href="click.php?id='.$resultado['link_url'].'">'.$resultado['link_title'].'</a> </div> <div class="cont"><p>Cliques: '.$resultado['click'].'</p></div> </div>'; } mysql_close(); ?> Será que alguem pode me dar um auxilio? Ainda estou iniciando no php e tenho algumas dificuldades. Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Dezembro 30, 2012 coloca echo"oi"; no lugar de header("Location: ".$_GET['link_url']); soh pra teste Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Dezembro 30, 2012 coloca echo"oi"; no lugar de header("Location: ".$_GET['link_url']); soh pra teste Apareceu a saída do echo, mas não fez o Update no banco. Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Dezembro 30, 2012 tenta assim mano $click = $clicks + 1; $sql = "UPDATE usuarios SET clicks = $click WHERE link_id=$id"; mysql_query($sql); Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Dezembro 30, 2012 tenta assim mano $click = $clicks + 1; $sql = "UPDATE usuarios SET clicks = $click WHERE link_id=$id"; mysql_query($sql); Não deu certo também, deu a mesma coisa que antes, nenhum erro, porém não faz update. Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Dezembro 30, 2012 click é um int ou varchar? $sql = "UPDATE usuarios SET click='click+1' WHERE link_id='$id'"; se for int remova as aspas simples, que deve funcionar. Compartilhar este post Link para o post Compartilhar em outros sites
Marcos_imasters 288 Denunciar post Postado Dezembro 30, 2012 manda sua sql ai pra da uma olhada você verificiou se esta enviado o id do usuario corretamente?? Compartilhar este post Link para o post Compartilhar em outros sites
lucaswxp 22 Denunciar post Postado Dezembro 30, 2012 Tente o seguinte SQL: $sql = "UPDATE usuarios SET click=click+1 WHERE link_id='$id'"; O erro que está acontecendo não é relacionado ao problema de não estar atualizando. Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Dezembro 30, 2012 Tente o seguinte SQL: $sql = "UPDATE usuarios SET click=click+1 WHERE link_id='$id'"; O erro que está acontecendo não é relacionado ao problema de não estar atualizando. Obrigado, era as aspas mesmo o erro, o campo é int, agora está atualizando, verifiquei que por erro meu tinha definido: <div class="tittle"> <a href="click.php?id='.$resultado['link_url'].'">'.$resultado['link_title'].'</a> </div> Quando o correto seria: <a href="click.php?id='.$resultado['link_id'].'">' Porém o erro de redirecionamento continua. Segue a tabela do banco: CREATE TABLE IF NOT EXISTS `usuarios` ( `link_id` int(11) NOT NULL AUTO_INCREMENT, `link_title` varchar(255) NOT NULL, `link_url` varchar(255) NOT NULL, `foto` varchar(100) NOT NULL, `link_categoria` varchar(255) NOT NULL, PRIMARY KEY (`link_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=19 ; Compartilhar este post Link para o post Compartilhar em outros sites
lucaswxp 22 Denunciar post Postado Dezembro 30, 2012 Mas exibe algum erro? Tente dar um exit logo depois do header, assim a requisição terminará logo ali e ficará claro pro navegador que você quer um redirect, já que a mensagem HTTP não possuirá um corpo. header("Location: ".$_GET['link_url']); exit; Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Dezembro 30, 2012 aqui você vai ter a variavel $_GET['id'] <a href="click.php?id='.$resultado['link_id'].'">' não seria $_GET['id'] no lugar de $_GET['link_url']? onde esta definido $_GET['link_url']? header("Location: ".$_GET['link_url']); ou você passa mais uma variavel no $_GET <a href="click.php?id='.$resultado['link_url'].'&link_url='. $resultado['link_url'] .'">'.$resultado['link_title'].'</a> Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Dezembro 30, 2012 Mas exibe algum erro? Tente dar um exit logo depois do header, assim a requisição terminará logo ali e ficará claro pro navegador que você quer um redirect, já que a mensagem HTTP não possuirá um corpo. header("Location: ".$_GET['link_url']); exit; Não deu certo, ele exibe o mesmo erro de antes: "Notice: Undefined index: link_url in..." aqui você vai ter a variavel $_GET['id'] <a href="click.php?id='.$resultado['link_id'].'">' não seria $_GET['id'] no lugar de $_GET['link_url']? onde esta definido $_GET['link_url']? header("Location: ".$_GET['link_url']); ou você passa mais uma variavel no $_GET <a href="click.php?id='.$resultado['link_url'].'&link_url='. $resultado['link_url'] .'">'.$resultado['link_title'].'</a> Obrigado pela ajuda, mas eis um problema, não sei responder isso ao certo, mas pensei que o $_GET puxava o dado direto do banco, após o select, abaixo vou postar a index: <?php $sql= "SELECT * FROM usuarios WHERE status=1 ORDER BY click DESC"; $query = mysql_query($sql); $qtd=mysql_num_rows($query); while ($resultado = mysql_fetch_assoc($query)) { echo ' <div class="mag"> <div class="category"> <p>'.$resultado['link_categoria'].'</p> </div> <img src="img/'.$resultado['foto'].'" alt="img"/> <div class="tittle"> <a href="click.php?id='.$resultado['link_id'].'">'.$resultado['link_title'].'</a> </div> <div class="cont"><p>Cliques: '.$resultado['click'].'</p></div> </div>'; } mysql_close(); ?> Será que devo mudar algo nessa pag, já que é ela que direciona para o contador "click"? Sou leigo ainda. Compartilhar este post Link para o post Compartilhar em outros sites
shini 318 Denunciar post Postado Dezembro 30, 2012 deixe assim, veja q agora você esta passando uma variavel chamada link_url e atribuindo o valor $resultado['link_url'] q vem do banco. <a href="click.php?id='.$resultado['link_url'].'&link_url='. $resultado['link_url'] .'">'.$resultado['link_title'].'</a> para ter certeza q esta vindo algum valor no $_GET faça assim: echo "<pre>"; print_r($_GET); Compartilhar este post Link para o post Compartilhar em outros sites
KS_Scream 1 Denunciar post Postado Dezembro 30, 2012 deixe assim, veja q agora você esta passando uma variavel chamada link_url e atribuindo o valor $resultado['link_url'] q vem do banco. <a href="click.php?id='.$resultado['link_url'].'&link_url='. $resultado['link_url'] .'">'.$resultado['link_title'].'</a> para ter certeza q esta vindo algum valor no $_GET faça assim: echo "<pre>"; print_r($_GET); Deu certo, ele imprimiu o link, então mudei a saida para: header("Location: ".$_GET['link_url']); Então ele começou a direcionar, ams parou de fazer o update, então fiz uma pequena alteração nessa linha: <a href="click.php?id='.$resultado['link_url'].'&link_url='. $resultado['link_url'] .'">'.$resultado['link_title'].'</a> para: <a href="click.php?id='.$resultado['link_id'].'&link_url='. $resultado['link_url'] .'">'.$resultado['link_title'].'</a> e funcionou, muito obrigado pela ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
eliezer0121 0 Denunciar post Postado Maio 11, 2017 usei parte do seu código e fiz assim: index.php <?php include_once("conexao.php"); $sql= "SELECT * FROM livros"; $query = $conexao->query($sql); $dados = $query->fetch_array(); echo $query->num_rows;//testando while ($resultado = $query->fetch_array()) { echo ' <div class="mag"> <div> <p>'.$resultado['titulo'].'</p> </div> <img src="_galeria/'.$resultado['img1'].'" alt="img"/> <div> <a href="contaclique.php?id='.$resultado['id'].'&views='.$resultado['cliques'].'">'.$resultado['descricao'].'</a> </div> <div><p>Cliques: '.$resultado['cliques'].'</p></div> </div><hr>'; } ?> envio dois gets o id do registro e o total de cliques ja registrados. Agora recebendo.. contaclique.php <?php require("conexao.php"); $views =$_GET['views'];//recebo os cliques do bd $id =$_GET['id'];//recebo o id do registro $conta_c = $views +1;//soma-se mais um $sql = "UPDATE anuncios SET cliques='$conta_c' WHERE id='$id'"; $query = $conexao->query($sql) or die (mysql_error()); if ($query){ header("Location: index.php"); } else { echo 'Erro'; mysql_query($sql) or die (mysql_error()); } ?> simples neah? Compartilhar este post Link para o post Compartilhar em outros sites