J'ai un système plus/moins où un utilisateur peut en ajouter un ou moins d'un article de blog.Mise à jour de l'horodatage dans la table avec REPLACE INTO
Ma base de données Table (MySQL) ressemble à ceci: userid identifiant d'entrée vote - qui est +1 ou -1 timeStamp
J'ai mis le timestamp par défaut CURRENT_TIMESTAMP.
J'ai les méthodes plus() et moins(). Les deux font la même chose mais on insère +1 dans "vote" et l'autre insère -1. Puisque (userid, entryid) est la clé primaire, j'utilise REPLACE INTO. INSERT INTO affiche une erreur de duplication. INSERT IGNORE ne laisse pas le changement d'utilisateur à voter à +1 -1
"REPLACE INTO votes(userid, entryid, vote) VALUES(:uid,:eid, -1)";
Ignorer les valeurs ..
Alors que REPLACE INTO fonctionne parfaitement, je commande par l'horodatage, alors quand quelqu'un clique +1 une seconde fois après avoir voté, il met à jour l'horodatage, ce qui le place en haut de la liste.
Quelqu'un connaît une solution à cela?
ps Désolé pour le mauvais titre. Je ne pouvais pas penser à un approprié.
vous n'avez pas besoin de référencer la colonne d'horodatage du tout depuis l'horodatage est seulement mis à jour si la ligne est réellement mise à jour. si le vote est le même, il n'y a pas de changement et la colonne timestamp n'est pas mise à jour. – longneck