OVH Community, votre nouvel espace communautaire.

Mysql : incrémentation doublée


Gr3G
22/12/2009, 08h22
Bonjour Rochels,

merci pour cette réponse rapide. Cependant, je n'utilise pas de publicité Adsense pour le moment.
J'ai quand même testé ton code, sans succès. Il m'a tout de même permis, via l'erreur "Fatal error: Call to undefined function: stripos()" de m'apercevoir que je n'étais pas en mode PHP5. Je l'ai activé, mais l'incrémentation est toujours double.

Je crois que cette demande va finir au support OVH.

Merci de votre aide si vous avez des idées de piste pour trouver une solution !

rochels
21/12/2009, 13h32
Probablement le bot AdSense, le robot qui visite tes pages (mêmes dynamiques) lorsque tu diffuses des annonces de la régie publicitaire Google sur ton site.

Tu peux tester si c'est lui le responsable avec une instruction telle que (ou alors regarder dans tes logs de connexion) :

if (is_numeric(stripos($_SERVER["HTTP_USER_AGENT"],"Mediapartners"))) echo 'Mediapartners !';
J'ai eu ce genre de joyeusetés sur mon site, je n'en croyais pas mes yeux et retournais mon code dans tous les sens, jusqu'à ce que je comprenne... que ce bot était responsable de plus de 30% des accès via un de mes formulaires

(si tu ne diffuses pas d'annonces Google AdSense, alors c'est autre chose, bien sûr)

Gr3G
21/12/2009, 09h44
Bonjour à tous,

Je suis sur l'hébergement Perso, BDD mysql5-2, et utilise le language PHP.
J'utilise une requête pour incrémenter le nombre de fois qu'un mot est recherché sur mon site, via un moteur de recherche personnel.
J'utilise donc une requête de la forme suivante :
UPDATE matable SET total=total+1 WHERE id=monid

Le souci qui se pose, est que la nouvelle valeur du champ "total" a pris un +2 ou lieu d'un +1. J'ai même récupéré en amont la valeur du champ "total", effectué l'incrémentation via php, puis affiché la requête après exécution : et elle affiche bien un +1. Or, en actualisant la table sous phpMyAdmin, le champ a pris un +2.

Le champ total est un INT(32), j'ai testé en le modifiant en champ DOUBLE, sans succès.

Je précise qu'il n'y a pas de requête en double : si je n'exécute pas cette requête précise, aucune incrémentation n'est effectuée dans la BDD.

Généralement, j'arrive à me résoudre moi-même mes erreurs, mais là je penche plutôt à un problème de configuration coté hébergeur.

Je vous remercie d'avance de votre aide, si quelqu'un a la solution ou bien si quelqu'un est confronté au même problème.

cdt,