[résolu] php/mysql : incrémentation double de mon compteur Oo
Forum Programmation : [résolu] php/mysql : incrémentation double de mon compteur Oo
Salut à tous,
je ne comprend pas pourquoi ce petit bout de code php est constemment appelé en double (j'ai même vérifié dans les logs de phpmyadmin)
Ce morceau de code est censé incrémenté un compteur dans a bdd de 1 et il le fait de 2 en 2 (sauf la première fois)
j'ai testé avec une incrémentation par 3 et il fait de 6 en 6...
voici le bout de php :
<?php
$host = "localhost";
$user = "login";
$passwd = "mdp";
$bdd = "gryphus71";
$connection = mysql_connect($host,$user,$passwd) or die("erreur de connexion au serveur" );
mysql_select_db($bdd) or die("erreur de connexion a la base de donnees" );
$resultat = mysql_result( mysql_query("SELECT nombre FROM compteurs WHERE type='visualisations'" ), 0);
$resultat=$resultat+3;
print("<tr>Nombre de <b>visiteurs</b> venus sur cette page : $resultat</tr>" );
mysql_query("UPDATE compteurs SET nombre=$resultat WHERE type='visualisations'" );
mysql_close($connection);
?>
voyez vous une erreur ? ou comment y remédier ?
Message édité par gryphus71 le 09-12-2006 à 13:29:46
faudrait poster le code qui appelle ce script, la je vois rien (mais quelque chose m'échappe peut etre)
le code html !?
Essaye de mettre SET nombre='$resultat'
Laissez tomber, j'ai planché sur un soucis identique sur un code plus ou moins à moi... c'est un effet de bord idiot
J'avais le gag sur une page où je devais compter les hits... si je ne mettais pas la requète à la fin de la source, j'incrémentais de 2 et non de 1, tout simplement parce que la connexion était en mode persistant.
Et même en refermant la connexion après l'update, en resetant tout, rien à faire... il semblerait que ce soit une latence sur le serveur MySQL qui fait ça (process trop rapide???)
Répondre à crazycat@idn
Ah oui c'est vrai j'ai souvent eu ce souci aussi. Mais en fermant la connexion et en en ouvrant une autre, ca marche en général.
Sinon je crois que j'avais trouvé une fonction flush(), un truc comme ca.
A voir...
PERDU
!!!
j'ai trouvé ! et c'est une erreur à la c**....merci quand même à coca25 qui m'a mis sur la piste !
j'avais un problème dans le code html
en gros l'architecture était :
<body>
<table>
<?php
...print("<td>...</td>" );
?>
<tr>...</tr>
</table>
</body>
au temps pour moi... je n'avais pas vu que tu avais dit que le code était appelé 2 fois, j'étais resté sur une incrémentation double
@arod: je bossais avec des connexions "abstraites", une connexion ne servait qu'à l'update... donc elle était bien closed immédiatemment. J'avoue avoir laisser tomber, biscotte oeuf contraintes de temps.
Répondre à crazycat@idn
lol les gens ^^
merci quand meme de votre mobilisation
De rien, ce fut un plaisir partagé.
@crazycat : j'viens juste de comprendre le "biscotte oeuf" hi
Il y a 1998 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
