[RESOLVIDO] Como fazer um contador de clicks PHP, HTML, MYSQL

Boa tarde,

Primeiramente, estou usando o Framework CodeIgniter e uso também o Bootstrap.

Agora, em uma de minhas páginas eu tenho uma imagem que é mapeada (utilizo a tag map) conforme abaixo:

Parque

<map name="Map" id="Map">
    <area alt="Sol" id="sol" href="<?php echo base_url('assets/midia/videos/video.mp4');?>"           class="html5lightbox" title="Sol" shape="rect"  coords="52,11,169,114"/>
</map>

No caso, tenho a imagem de um parque no qual a área dessa imagem que tem o sol, é “clicável”, quando a mesma for clicada ela abre um vídeo.

Como eu poderia fazer para que quando o usuário clicasse nessa área (sol), além de abrir o vídeo, fosse atualizado no banco de dados (mysql) a minha tabela, onde eu tenho o nome da imagem e uma variável que receberia a contagem dos cliques (qtdclick), tabela:

CREATE TABLE preferencia (
  codpreferencia int(11) NOT NULL,
  nomeimg varchar(200) NOT NULL,
  qtdclick int(11) NOT NULL
)

Eu preciso dessa contagem para depois poder gerar alguns gráficos de preferência dos usuários para colocar em um artigo. Desse modo, preciso que a contagem somente aconteça quando ocorrer o click na área citada. Vi que isso deve ser feito em PHP, até encontrei alguns exemplos, mas não se encaixaram nisso que eu preciso.

Bom, resolvi, vou postar a solução, para que se alguém passar pela mesma dificuldade ter um exemplo que talvez possa ajudar:

JavaScript:
<script type="text/javascript"> $(document).ready(function(){ $(".html5lightbox").click(function(){ $.ajax({ url: '<?= base_url(); ?>' + 'index.php/contaclick', type: 'POST', data: {valorid:$(this).attr('id')}, success: function(msg){ if(msg == 'ok'){ jQuery.fn.reset = function(){ $(this).each(function(){ this.reset();}); } } } }); return false; }); }); </script>

O meu Controller “contaclick.php”:
$this->load->model('conta'); $this->conta->contar(); echo "ok";

E o Model “conta.php”:
`public function contar() {
$query = $this->db->query(‘SELECT qtdclick FROM preferencia WHERE nomelink="’.$this->input->post(‘valorid’, TRUE). ‘" LIMIT 1’);
$row = $query->row();
$qtd = $row->qtdclick;

	$qtd = $qtd+1;
	
	$this->db->where('nomelink', $this->input->post('valorid', TRUE));
	$this->db->update('preferencia', array(
			'qtdclick' => $qtd
	));
}`

Se houver alguma sugestão e/ou maneira de otimizar fico à disposição para discutir. :smiley:

Boa noite.