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

amanique

Gráfico de Links Mais Visitados

40 mensagens neste tópico

Meus caros,

Estou a construir um site em php para um stand de automóveis e preciso de ter um gráfico dos 5 carros mais vistos utilizando ids da base de dados MySQL. Como é que eu posso fazer isto?

Alguma ideia?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, mas isso não é solução. Não quero usar nenhum serviço do google até porque estou a trabalhar ids na base de dados (idModelo).

Preciso de um gráfico básico que me diga os 5 carros da minha base de dados mais clicados.

Vejam lá se conseguem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

TU é que tens de conseguir :)

Se na tua base de dados tiveres um campo que te diga quantas visitas teve um carro, basta fazeres uma ordenação pelo número de visitas de forma descendente (query em SQL)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois eu sei que sou eu que tenho de conseguir, mas como não tenho conhecimentos necessários para isso, peço ajuda a quem supostamente sabe mais do que eu.

Ok, tenho que ter um campo na bd para as visitas e ordená-lo do maior para o menor, até aí tudo bem...

Mas depois não sei que código é necessário para que o número de visitas de cada carro aumente cada vez que alguém clica nele e muito menos depois transformar o número de visitas num gráfico.

Será possível darem-me esta grande ajuda?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

o melhor metodo na minha opniao em vez de usares uma base de dados mysql, usas um bloco de notas como contador de quantas vezes teve de visitas esse automovel

e depois leres o bloco de notas para fazer o grafico,

tens um exemplo se nao me engano do nosso amigo skin aqui no forum acerca de desenhar graficos em php de forma dinamica.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sendo que tens (ou deverias ter, como foi sugerido) uma variável que guarda o numero de visitas, seja visitas, sempre que for seleccionado o carro com ID X, incrementa o número de visitas desse ID X.

Fazes, como foi sugerido, a ordenação e para gerar gráficos dá uma leitura aqui:

Gerar Gráficos: http://clares.wordpress.com/2008/08/09/gerar-graficos-com-php/

http://www.oficinadanet.com.br/artigo/1067/graficos_php_com_pchart

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Da forma como o softclean te indicou, cada vez que alguém clicar num link, o código PHP que mostra os dados, terá também, de somar mais um valor ao que está na tabela, para isso, a forma mais simples é leres o valor, incrementares uma unidade e voltares a introduzir o valor na tabela. Suponho que sabes executar consultas e inserções em bases de dados usando PHP.

Para criares gráficos podes usar uma das várias bibliotecas de geração de gráficos que existem por aí, tipicamente usam flash para criar os gráficos, embora possam usar apenas imagens. Uma biblioteca que uso é a jpgraph, http://www.aditus.nu/jpgraph/

Bloco de notas? Seria ficheiro de texto? Se usares ficheiro de texto implica pesquisar mais que uma vez em locais diferentes, a BD torna-se mais simples e directa, assumindo que já está a ser usada um BD para guardar as informações dos automóveis.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Knitter antes de mais obrigado pela resposta,

Confesso que entendo muito pouco disto, não sei como fazer o código para ler da db nem para incrementar à medida que o link é clicado. Será que me podes ajudar a construir?

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

um bocado offtopic, mas qual será o link mais visitado do mundo, sem ser o motor de busca do google claro ??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

um bocado offtopic, mas qual será o link mais visitado do mundo, sem ser o motor de busca do google claro ??

O site da microsoft, levas com ele sempre que instalas o windows, e acredito que mais de metade dos utilizadores nunca mude o default do IE na vida.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

um bocado offtopic, mas qual será o link mais visitado do mundo, sem ser o motor de busca do google claro ??

O Alexa fornece-te uma estatística muito realista imo (não abrange todos os utilizadores, mas uma grande parte deles).

Knitter antes de mais obrigado pela resposta,

Confesso que entendo muito pouco disto, não sei como fazer o código para ler da db nem para incrementar à medida que o link é clicado. Será que me podes ajudar a construir?

Obrigado

Jovem, não esperes que façam tudo por ti, até porque acho um bocado importante um programador saber programar. :):P

-> http://php.net/mysql

A incrementação é só matemática.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

a minha sugestao pode ser um bocado parva mas se tu fizeres um isset a um link(nunca experimentei por isso nao sei se da) e por cada vez que carregasse no link adicionavas um valor a uma variavel.

tipo isto:

if(isset("link.php")){ $contador++; }

e depois guardavas esse valor na bd junto no registo de cada carro...

depois fazias um select aos 5 carros com mais visitas.

espero ter ajudado.  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Acho que era mais simples fazer, sempre que via a página de um carro, ele acrescentava à BD, ao ID desse carro, mais uma visita.

@subkiller

Acho que isso não é possível em PHP, mas não tenho a certeza. Isso era mais em JavaScript e AJAX.

@amanique

Como disse o The Loser, é importante um programador saber programar. Quando perguntares, pergunta questões mais específicas, algo em que encalhaste e não sabes sair daí. O site do PHP é um bom começo. O podias gerar gráficos com a Google Chart API, como disse o Betovsky. Ficas com gráficos 3D e são fáceis de criar. Vê na página da Google Chart API, lá tem um exemplo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não sei se isso vai funcionar... mas agradeço a ajuda, porque pelos vistos neste forum há um bocado de má vontade com aqueles menos experientes e até mesmo alguma antipatia. Ninguém nasce ensinado e pelo menos EU admito que não sei, mas não tenho preguiça de procurar tutoriais, o problema é procurar algo muito específico e ao que me parece ninguém nunca fez.

Procuro ajuda junto daqueles que penso que percebem muito disto e em troca mandam-me ir aprender a programar...

Pois não sei programar de facto, tenho umas luzes, sei o muito básico e mesmo esse talvez nem todo, mas eu pelo menos tento ajudar sempre aqueles que sabem ainda menos do que eu. Talvez este forum não devesse chamar-se comunidade, mas uma sociedade.

Àqueles que me procuraram mesmo ajudar, o meu muito obrigado e perdoem-me a ignorância.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Repara, amanique, não é bem assim.

Suponhamos que não sabes como contar os registos de uma tabela MySql, perguntas e nós ajudamos.

Suponhamos que não sabes como inserir registos numa tabela MySql, perguntas e nós ajudamos.

Depois de juntares as peças todas, vez o que consegues fazer. Se tiveres dúvidas, perguntas.

Só pesquisei no Google por Gerar Gráficos em PHP, em português e apareceram-me uma série de resultados interessantes.

Já para não falar de que se usasse a Google Chart API, só tinhas de fazer uma Query MySql e inserias os dados como mostra o exemplo e estava feito.

Algo deste género:


$query = mysql_query("SELECT nome FROM carros ORDER BY views");
$query2 = mysql_query("SELECT views FROM carros ORDER BY views");

echo '<img src="http://chart.apis.google.com/chart?cht=p3&chd=t:'.mysql_result($query2, 0).','.mysql_result($query2, 1).','.mysql_result($query2, 2).','.mysql_result($query2, 3).','.mysql_result($query2, 4).'&chs=250x100&chl='.mysql_result($query, 0).'|'.mysql_result($query, 1).'|'.mysql_result($query, 2).'|'.mysql_result($query, 2).'|'.mysql_result($query, 3).'|'.mysql_result($query, 4).'">';

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

amanique,

Mas qual antipatia? Os que te dão o código feito é que estão a agir incorrectamente.

Não te parece muito melhor que sempre que tiveres um problema, o consigas resolver em vez de vires perguntar à nossa comunidade?

Isto de ter tudo feito por ti não te ensina nada. Eu também não sabia programar até aprender, e sim, isso levou algum tempo, mas eu nunca fui o tipo de pessoa de ir perguntar coisas a torto e a direito, e usar código sem perceber um corno de como ele trabalha, e acho que todos os que estão a avançar em qualquer tipo de projecto devem agir desta mesma forma.

Procuro ajuda junto daqueles que penso que percebem muito disto e em troca mandam-me ir aprender a programar...

Se não queres aprender a programar, porque é que o estás a fazer?

Eu dei-te um link extremamente útil que explica as várias funções da biblioteca mysql de PHP, com isso só, consegues fazer o queres com menos de 10 linhas de código (estou a falar da contagem e escrita em bases de dados).

Isso por si já é uma grande ajuda.

Sinceramente, essa frase é um bocado estranha.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

existe aqui um exemplo de criar um contador de links, no forum num pedido de ajuda, nao me lembro se foi feito pedido aqui na secçao de php ou javascript, em que participei... o que precisas?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@amanique

Quem te ajuda teu amigo é. Eu também aprendi a programar à pouco tempo. E comecei a fazer coisas simples, de acordo com o nível do meu conhecimento. Com essas mini-aplicações, aprendi mais e fico contente por ninguém ter feito o código por mim, porque assim não perceberia nada de PHP. Mas também fico contente se alguém me ajuda. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

elcsat obrigado pela tua resposta,

É mesmo isso, preciso de um contador de links. Adiciono um campo na base de dados por exemplo "cliques". Quero que esse campo incremente cada vez que alguém clicar no link associado a esse registo. Para já é por aí...

Obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estou a experimentar ir por aqui agora, mas ainda não cheguei lá.

Vou colocar um evento onclick que faça um update à bd.

Assim:

<a onclick="document.MySQL.Entry.value+='UPDATE carro SET cliques = cliques + 1 WHERE idCar='<?php echo $row_Carro['idCar']; ?>'" href="modelo.php?idCar=<?php echo $row_Carro['idCar']; ?>"><img src="thumb.php?src=<?php echo $row_Carro['foto1']; ?>&wmax=430&hmax=323&quality=90" /></a>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não faças isso com JavaScript, se o fizeres estás a criar uma falha de segurança.

O JavaScript é processado no lado do cliente (no browser), e é facilmente injectado código neste.

Faz tudo do lado do servidor.

Põe o código para fazer update à base de dados no modelo.php.

Ligação ao servidor de base de dados -> http://php.net/mysql_connect

Seleccionar Base de Dados -> http://php.net/mysql_select_db

Executar um query -> http://php.net/mysql_query

Fechar ligação -> http://php.net/mysql_close

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estou a fazer assim agora, mas também não funciona. Com estes dois ficheiros.

index.php

<a onclick="parent.location='cliques.php?idCar=<?php echo $row_Carro['idCar']; ?>" href="modelo.php?idCar=<?php echo $row_Carro['idCar']; ?>">O Meu Link</a>

cliques.php

<?php

$clickupdate = $_GET['idCar'];

$mysql_hostname = "localhost";

$mysql_user = "root";

$mysql_password = ""

$bd = mysql_connect($mysql_hostname, $mysql_user, $mysql_password);

mysql_select_db($database_carros, $carros);

$update = "UPDATE carro SET cliques = cliques + 1 WHERE idCar = '$clickupdate'";

$result = mysql_query($update);

echo '<script type=""text/javascript"">history.go(-1);</script>';

?>

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estás a complicar o que não é complicado. Põe esse código no modelo.php.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas custa-te assim tanto dizer como é que é?

Só estamos a perder tempo...

0

Partilhar esta mensagem


Link 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