Tom's Guide > Forum > Programmation > [résolu] php/mysql : incrémentation double de mon compteur Oo

[résolu] php/mysql : incrémentation double de mon compteur Oo

Forum Programmation : [résolu] php/mysql : incrémentation double de mon compteur Oo

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

faudrait poster le code qui appelle ce script, la je vois rien (mais quelque chose m'échappe peut etre)

Répondre à coca25

Essaye de mettre SET nombre='$resultat'

Répondre à arod@IDN

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éseau IRC Francophone | g33k-zone
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...

Répondre à arod@IDN

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>

Répondre à gryphus71

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éseau IRC Francophone | g33k-zone
Répondre à crazycat@idn

lol les gens ^^
merci quand meme de votre mobilisation :)

Répondre à gryphus71

De rien, ce fut un plaisir partagé. :d
@crazycat : j'viens juste de comprendre le "biscotte oeuf" hi

Répondre à arod@IDN
Tom's Guide > Forum > Programmation > [résolu] php/mysql : incrémentation double de mon compteur Oo
Aller à :

Il y a 1998 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens