IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Update en double


Sujet :

Requêtes MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 48
    Par défaut Update en double
    Bonjour,
    j'ai un comortement trés bizare sur une requete UPDATE pour incrémenté un simple compteur.
    Ce code est dans une petite fonction que j'appelle au travers d'une classe (PHP5)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Compter{
     
    <div style="margin-left:40px">function setCompteur($id){</div><div style="margin-left:40px">mysql_query ( "UPDATE table SET compteur=compteur+1 WHERE id=".$id." LIMIT 1" );</div>
    <div style="margin-left:40px">mysql_free_result();</div><div style="margin-left:40px">}</div>}
     
    // je l'appelle comme ca
    $ajouter = new Compter;
    $ajouter->setCompteur($id);
    Le probleme est qu'il incrémente le champ non pas de 1 mais de 2
    Mais si je fais actualisé assez rapidement il n'incrémente que de 1
    Je sais que ce qui vous interresse c'est le SQL, mais j'étais pas sur et je pense que cela vien d'un comportement de la requete.
    On dirait qu'elle est executer 2 fois.

    Quelqu'un aurait il une idée?


    Merci d'avance

    PS: si les modos pense que c'est un probleme PHP qu'il n'hesite pas a déplacer le sujet

  2. #2
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Tu pourrais activer le log de mysql avec une ligne du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    log="C:\Dev\mysql5\log.log"
    dans le fichier de configuration (ou en paramètre du serveur). Ca log toutes les requêtes effectué. Mauvais pour les perf mais ça te dira d'où viens le problème.

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 48
    Par défaut
    Merci mais je suis sur un serveur dédié et n'étant pas administrateur réseau, je ne sais pas activer ce genre de chose
    Mais ca m'a donnée l'idée d'essayé d'en créé un dans la fonction pour voir l'activité
    Je teste ca

  4. #4
    Membre chevronné Avatar de jota5450
    Inscrit en
    Janvier 2006
    Messages
    263
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations forums :
    Inscription : Janvier 2006
    Messages : 263
    Par défaut
    bjour.

    Ton code me semble bon.
    T´es sur que l´appel a ta class n´est pas dans une boucle?


    met un echo dans ta class, ou autre chose du genre, pour voire combien de fois il passe dans ta class.

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2005
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2005
    Messages : 48
    Par défaut
    Merci,
    je viens de vérifié en faisant un petit log et la requete etait bien créé 2 fois.
    Ca venait donc du code PHP, ce que je ne comprend pas c'est que mon appel a la methode n'était pas dans une boucle mais en tout début dans l'entete pour initialiser les variables. Ca semblait poser un probleme a un endroit ou j'appelé des images dynamiquements dans une boucle, mais aucun lien avec la methode.
    Pourtant en supprimant le code des images ca marchais.
    Le plus fou c'est que c'était une version test et en finalisant la page le bug n'y est plus
    Bon l'essentiel est que ca marche mais j'aurais bien aimé comprendre...

    Merci quand meme

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Update et double jointure
    Par Walanup dans le forum Développement
    Réponses: 4
    Dernier message: 19/07/2012, 17h06
  2. [SQL] Proc SQL update avec double lien
    Par GuillaumePr dans le forum SAS Base
    Réponses: 5
    Dernier message: 17/06/2010, 14h33
  3. [Double] Problème de type DOUBLE dans UPDATE SQL
    Par GarsDuCalvados dans le forum VB.NET
    Réponses: 1
    Dernier message: 04/06/2009, 23h34
  4. Update et double jointure
    Par kilbane dans le forum Langage SQL
    Réponses: 3
    Dernier message: 02/04/2009, 11h01
  5. [hibernate] des update en "double"
    Par pour.lespubs dans le forum Hibernate
    Réponses: 3
    Dernier message: 24/03/2009, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo