Bonjour,
Pas forcément la meilleurs solution.. mais elle a le mérite de fonctionner..
Tu créer une table "Likes" (ou likes_dislikes si tu préfères..), :
id - (les trucs basiques... INT auto incrémente, primary)
likes INT (Compteur de like pour chaque article qui serait un booléan avec 0 comme valeur par défaut).
dislikes INT (compteur de dislike qui serait lui aussi un booléan avec 0 comme valeur par défaut).
article_id : INT (ou var_char) l'id de l'article liké (ou disliké)
VotedBy : Var_char L'IP (ou le pseudo) de l'user qui a liké ou disliké
Quelques explications :
Tu ajoutes en base chaque like ou dislike (l'utilité du booléan : Si l'user a aimé l'article likes vaudra 1 (et donc dislikes vaudra toujours 0) et inversément :D Ce n'est pas forcément obligatoire (vu que tu as déjà sans doute un compteur de like dislike, donc tu pourrais juste créer un champ "Voted" qui vaudrait soit 1 ou 0 si c'est vrai ou faux) et "Vote_by" pour savoir qui a voté).
Tu ajoutes ensuite l'IP ou le pseudo de l'user (ça c'est pour après, pour comparer)
et l'id de l'article te permettera par exemple de pouvoir récupérer les likes et dislikes de chaque article (par exemple).. surtout de savoir de quel article on parle (pour bien bloquer le vote sur le bon article).
Ensuite dans ton code tu fais une comparaisons :
Si username (ou l'IP) se trouve dans la table likes / dislikes (ça veut dire qu'il a liké après justement tu peux savoir si il a liké ou disliké grâce au compteur).