2010-08-16 5 views
1

Comment incrémenter une valeur dans une table mysql à chaque fois par exemple si un lien est pressé?Incrémentation d'un compteur de clic dans MySQL

Avez-vous les données de la base de données, puis ajoutez-y 1 et ensuite le renvoyer? Je suppose que cela utiliserait beaucoup de bande passante.

Tous les exemples et l'aide seraient appréciés,

Merci!


Ajouté:

Je voudrais aussi garder une trace de qui a appuyé sur le lien dans la base de données elle-même, ce que je dois ajouter l'ID de l'utilisateur qui a cliqué sur le lien afin qu'ils ne peuvent pas cliquer deux fois sorte de chose ?

Répondre

5

Vous pouvez simplement utiliser une instruction UPDATE comme celui-ci pour incrémenter un champ compteur:

UPDATE your_table 
SET your_counter = your_counter + 1; 

Si vous souhaitez garder une trace de qui cliqué sur le lien, vous auriez à créer une autre table, contenant éventuellement un champ timestamp, un champ user_id et un champ link_url (ou link_id). Ensuite, vous pouvez simplement insérer une nouvelle ligne dans cette table chaque fois que quelqu'un clique sur un lien:

INSERT INTO clicks (click_timestamp, user_id, link_url) 
VALUES  (NOw(), 100, '/news.html'); 

Notez que la fonction NOW() renvoie la date et l'heure.

Si vous souhaitez ajouter une contrainte telle que les utilisateurs ne puissent pas cliquer deux fois sur un lien, vous pouvez configurer une clé primaire composite sur (user_id, link_url). La contrainte unique fournie avec la clé primaire garantit que vous ne pouvez pas avoir plus d'une fois le même lien associé à un utilisateur particulier. C'est donc comment votre table clicks pourrait ressembler à:

CREATE TABLE clicks (
    user_id   int, 
    link_url   varchar(255), 
    click_timestamp datetime, 
    PRIMARY KEY (user_id, link_url) 
); 
0
update tbl set counter = counter + 1 
Questions connexes