Visualizzazioni di un determinato post

Ciao, ho provato svariate volte su come inserire delle visite su database di un determinato post, ma non sto riuscendo.

Ho creato una tabella "views", con i campi: id_post,ip_address,views_count

L'idea sarebbe quella di inserire/aggiornare +1 il campo views_count associato appunto al relativo id_post, ma che quindi ci sia una verifica dell'indirizzo IP se è gia presente non inserirà nulla.

Ho fatto delle prove, ma non va, se magari potreste aiutarmi con qualche spunto ne sarei grato,

Grazie

inviato 5 mesi fa
Okram
X 0 X

La tabella dovrebbe contenere solamente id_post e ip_address. Ad ogni visualizzazione del post dovresti prima verificare che la coppia id_post e ip_address non sia già presente nella tabella e poi, se non presente, effettuare la insert.

Per contare il numero di visualizzazioni potresti eseguire una

SELECT COUNT(*) FROM ... WHERE id_post = ...

Considera comunque che contare un'unica visita per indirizzo IP non è del tutto corretto perché diversi PC potrebbero condividere un unico indirizzo IP pubblico, come avviane ad esempio nelle aziende o nelle università. Potresti quindi scartare una visita solo se avviene entro un certo lasso di tempo dalla precedente. Oppure non usare l'IP per distinguere gli utenti ma un cookie contenente l'id dei post già visitati.

Infine ti avverto che potresti registrare molte visite dei motori di ricerca. Per ovviare potresti affidare ad un javascript, caricato in tutte le pagine del sito, il compito di chiamare un particolare URL del tuo sito che si occupa di registrare la visita alla pagina. I motori di ricerca generalmente non eseguono gli script presenti nelle pagine quindi saranno solo i browser veri e propri degli utenti a far scattare il conteggio.

risposto 5 mesi fa
Gianni Tomasicchio
X 1 X
Effettua l'accesso o registrati per rispondere a questa domanda