C'est semble être un petit buffer overflow. time_t est un type qui derrière correction plus ou moins à long signed int. En gros 2 fois la taille d'un int. (cela dépend beaucoup de la plateforme)
Le truc c'est que lorsque tu utilises ce code en placant le timestamp avant :
Code :
(`timestamp`,`count`) VALUE (%d, %d)
Vu que ton timestamp est de type %ld et non %d, il va empiéter sur le prochaine %d, celui du count.
Dans l'autre sens l'empiètement ne se fais pas ressentir directement.
Voilà une explication "en très très gros". Met les bon symboles dans tes *printf pour tes types et tu n'auras pas ce genre de problème.
%u pour countplayer car c'est un UNSIGNED int 32, et %ld car c'est un time_t.
Le type des variables a une importance certaines car cela permet au programme de savoir combien de bit il va devoir lire sur la pile pour chaque argument.