Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
bioshock

Get info errado [Resolvido]

Recommended Posts

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!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.