Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Lucas Renan

contar visitas

Recommended Posts

olá..

 

tenho uma página aonde são listados vários registros do banco..

 

e queria contabilizar as visitas, para cada registro..

 

eu executo uma stored procedure para trazê-los na tela..

entretando não consegui utilizar CURSOR pelo fato da consulta ser paginada,

então nõa ocnsegui realizar os inserts dentro dessa PROCEDURE..

 

alguém teria uma idéia para mim contar as visitas de cada registro, sem ter q ficar indo e voltando do banco, a cada registro?

 

a procedure está assim:

 

...
BEGIN

  -- seta as vars (parametros)
  SET @cid = cid;
  SET @cat = cat;

  SET @query = CONCAT('SELECT * FROM tabela WHERE CdCategoria=@cat AND CdCidade=@cid LIMIT ', inicio, ', ', limite);
  PREPARE stmt FROM @query;
  EXECUTE stmt;
  DEALLOCATE PREPARE stmt;


END 
...

pelo fato de usar LIMIT tive de fazer com PREPARE, pois o mysql não aceita variáveis no limit, esse foi o único jeito que funcionou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Deixa ver se compreendi, você fez uma procedure que retorna um intervalo de registros definidos pelo LIMIT, aí você quer fazer uma contagem individual de visualizações para cada registro?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eh isso sim..

quero fazer um "INSERT" ou "UPDATE" para cada registro, pois preciso salvar as visualizações de cada registro.

 

será q existi alguma forma de passar todos os códigos dos registros, para sei lah, uma stored procedure,

 

pq tem q ser rápido, fazer um insert para cada registro diretamente da aplicação vai ficar muito lento

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha kra, o único modo que eu vejo de fazer isto diretamente no banco de dados seria fazer uma interação dentro da tua procedure ali baseada nos registros que foram buscados, aí executar um update na tabela somando 1.

 

Pq com trigger tb não dá pra fazer isto, que eu saiba só funciona nos eventos INSERT, UPDATE, DELETE né.

Compartilhar este post


Link para o post
Compartilhar em outros sites

o ideal seria fazer dentro da stored procedure que lista os registros mesmo..

 

em teoria daria pra fazer um CURSOR,

 

porém não funciona com PREPARE... e preciso utilizar PREPARE pq o LIMIT não aceita variável, soh dessa forma funcionou..

 

com TRIGGER soh funcionaria se fosse insert, delete, etc...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ta e tipo, a tua variavel query ali deve esta como um objeto né.

Não tem como fazer um Loop após executar, percorrendo os registros e executando o update na seqüência?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra isso a forma q eu sei é utilizando cursor...

 

mas num funfa com prepare

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido: PHP=>MySQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.