Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

bioshock

Get info errado [Resolvido]

Mensagens Recomendadas

bioshock

Boas pessoal, estou aqui a dar voltas à cabeça com uma situação desde a semana passada. Eu já consegui por a funcionar correctamente com as páginas normais, mas com a saída de produtos não consigo.

É o seguinte: Eu vou buscar o ID do produto dinamicamente, portanto na página "S-Produtos" tenho:

echo "<a href=\"s-produtos-info".".php?info=".$id."\" style='color:#9C3'>$nome</a>";

Ou seja, quando clicado nesse link, ele vai buscar o ID e até aqui tudo bem, recebo o ID na página "S-Produtos-Info" desta forma:

$query = mysql_query("SELECT * FROM produtos WHERE id = '".$_GET['info']."'") or die("Error: " .mysql_error());

Agora, eu estou a implementar um sistema de TOP 10 e já o consegui fazer para as páginas mais visitadas. E eu agora preciso de fazer para os produtos mais vistos. Já consegui fazer a conversão do ID (GET['info']) para o nome do produto associado a esse ID.

Utilizo o seguinte código para inserir as páginas e inserir os produtos mais visitados na BD: (FUNCIONA BEM)

<?php 
include("connection.inc");
if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Gecko') )
{
   if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Netscape') )
   {
     $browser = 'Netscape';
   }
   if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Chrome') )
   {
     $browser = 'Google Chrome';
   }
   else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') )
   {
     $browser = 'Mozilla Firefox';
   }
   else
   {
     $browser = 'Mozilla';
   }
}
else if ( strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') )
{
   if ( strpos($_SERVER['HTTP_USER_AGENT'], 'Opera') )
   {
     $browser = 'Opera (MSIE/Opera/Compatible)';
   }
   else
   {
     $browser = 'Internet Explorer (MSIE/Compatible)';
   }
}
else
{
   $browser = 'Others browsers';
}

// Declaração das Variáveis;
$CurrentPage  = $_SERVER['SCRIPT_NAME'];
$LastPage = $HTTP_REFERER ;
$pegainfo = $_GET['info'];

// Mostra os dados todos nas linhas;
$querySelectALL = mysql_query("SELECT * FROM information WHERE linkactual = '$CurrentPage' and linkanterior = '$LastPage'");
while($rows = mysql_fetch_array($querySelectALL)){
$visitas = $rows['visitas'];
$visitasAnterior = $rows['visitasanterior'];
$visitasProduto = $rows['visitasproduto'];
}

// Faz procura para verificar se já existe o linkactual e o linkanterior;
$querySelectLinkActualAnterior = mysql_query("SELECT linkactual, linkanterior FROM information WHERE linkactual = '$CurrentPage' and linkanterior = '$LastPage'");
if(mysql_num_rows($querySelectLinkActualAnterior) !== 0) {

// Declaramos as variáveis para acrescentar mais um valor;
$AdicionaVisita = $visitas + 1;
$AdicionaVisitaAnterior = $visitasAnterior + 1;

// Caso exista linkactual, então vamos fazer update a esse linkactual + linkanterior;
$queryUPDATELinkActual = mysql_query("UPDATE information SET visitas = '$AdicionaVisita', visitasanterior = '$AdicionaVisitaAnterior' WHERE linkactual = '$CurrentPage' and linkanterior = '$LastPage'");

}else{

// Caso não exista nem linkactual nem linkanterior, inserimos dados novos;
$queryInsert  =  mysql_query("INSERT INTO information(browser, linkanterior, visitas, linkactual, visitasanterior) VALUES('$browser','$LastPage', '1', '$CurrentPage', '1')");
}
// Fazemos o mesmo procedimento para os produtos
$querySelectProduto = mysql_query("SELECT produto FROM information WHERE produto = '$pegainfo'");
if(mysql_num_rows($querySelectProduto) !== 0){

$AdicionaVisitaProduto = $visitasProduto + 1;

$queryUPDATEProduto = mysql_query("UPDATE information SET visitasproduto = '$AdicionaVisitaProduto' WHERE produto = '$pegainfo'");


}else{

$queryINSERTProduto = mysql_query("INSERT INTO information(produto, visitasproduto) VALUES('$pegainfo', '1')");
}
?>

Pronto, agora o problema reside em:

Quando visito o produto "S-Produtos-Info=1" (por exemplo) se visitar por exemplo 2 vezes, este insere na BD os resultados, depois vou para a página "S-Produtos-Info=2" e insere novamente os dados na BD mas se depois voltar à página "S-Produtos-Info=1" ele já não adiciona na BD, mas se for para outro Produto ele já continua a adicionar e depois se voltar ao "S-Produtos-Info=1" ele já adiciona novamente..

Conseguem ver algum erro no código? Obrigado pessoal!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.