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

PHP & Base de données Discussion :

Requête UPDATE ne fonctionne pas [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut Requête UPDATE ne fonctionne pas
    Bonjour,

    La requête ci-dessous refuse d'updater :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      if($specialiteAancienne==0)
      {$update="
      UPDATE  
      `categorieAnnuaire` 
      SET 
      '".$paysAncien."'='".$paysAncien."'+1 
      WHERE rang='".$sA."'";
      mysql_query($update); 
     
    //on vérifie si l'instruction est bien effectuée et si les données sont correctes :
      echo' '.$paysAncien.' -'.$sA.' ;
      }
    Donc le test en bas est effectué et les données sont correctes. Mais la requête n'update pas.

    Vous voyez une erreur ?

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Salut,

    tu as mis le nom de la colonne entre quotes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '".$paysAncien."'='".$paysAncien."'+1

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut
    Bien vu, je venais justement dire que j'avais trouvé la solution et en effet c'est ce que tu dis.

    Merci billoum pour ta réponse.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut
    Eh non en fait ça ne fonctionne pas .

    Je viens de me rendre compte de l'erreur :

    Ca n'incrémente ou ne décrémente pas le compteur.

    Ca update et ça marque 1 ou -1, quel que soit le chiffre précédent.

    Si il y avait 3, ça ne marque pas 4, mais 1.

    Quand je veux décrémenter, si j'avais 3 ça ne marque pas 2 mais -1.

  5. #5
    Rédacteur
    Avatar de RideKick
    Homme Profil pro
    Directeur technique
    Inscrit en
    Septembre 2006
    Messages
    5 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Septembre 2006
    Messages : 5 914
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    if($specialiteAancienne==0)
      {$update="
      UPDATE  
      `categorieAnnuaire` 
      SET 
      ".$paysAncien."=".$paysAncien."++
      WHERE rang='".$sA."'";
      mysql_query($update); 
     
    //on vérifie si l'instruction est bien effectuée et si les données sont correctes :
      echo' '.$paysAncien.' -'.$sA.' ;
      }

    et comme ceci ?
    Pas de questions techniques en MP please

    Mon site perso

    Mon profil Viadeo

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if($specialiteAancienne==0)
      {$update='UPDATE  
               `categorieAnnuaire` 
                SET 
                '.$paysAncien.'='.($paysAncien+1).'
                WHERE rang=\''.$sA;
      mysql_query($update); 
     
    //on vérifie si l'instruction est bien effectuée et si les données sont correctes :
      echo $paysAncien.' - '.$sA ;
      }

    Essaye ça :')

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut
    Non, il y a de l'idée avec ($paysAncien+1) mais le problème doit venir des quotes ou des guillemets. maintenant, ça n'update plus rien du tout.

    J'ai essayé comme ça aussi `".($paysAncien+1)."` mais c'est pareil.

  8. #8
    Membre chevronné Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Par défaut
    Bonjour,
    As-tu fait un echo de ta requete ?
    Que dit le message d'erreur (die(mysql_error())) ?
    Ce qui me chagrine, c'est que tes noms de colonnes sont des incréments. Donc, tu dois d'abord creer tes colonnes à la volée. C'est normal ? Ou ton nom de colonne est paysAncien et non $paysAncien...

    Sinon, je ne vois pas plus ce qui cloche....

    Sohnic

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut
    Je viens de faire le or die, mais ça n'affiche pas de message d'erreur.

    En fait j'ai 4 champs : France, Belgique, Suisse, Quebec.

    Je ne sais pas à l'avance lequel updater, donc je fais comme ça. Mais de ce coté ça fonctionne. C'est le bon champ qui est updaté. Par contre du côté droit de la requête, avec le +1, là ça ne fonctionne pas. Soit ça n'update pas, soit ça marque 1 ou -1 quelque soit le chiffre précédent.

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Je ne vois pas d'où vient le problème mais cette syntaxe là fonctionne:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE table SET nom_Colonne = nom_Colonne + 1 ...

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut
    Oui mais je ne connais pas à l'avance le nom du champ à UPDATER donc j'ai besoin de l'écrire sous forme de variable.

  12. #12
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    D'office mais ce que je ne comprend pas, c'est qu' après le remplacement des variables par leur valeur, ta requête devrait avoir la forme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UPDATE TABLE SET nom_Colonne = nom_Colonne + 1 ...
    Ca devrait donc marcher..

  13. #13
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Désolé, il y avait une erreur lors de ma requête.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    if($specialiteAancienne==0)
      {$update='UPDATE  
               `categorieAnnuaire` 
                SET 
                '.$paysAncien.'=\''.($paysAncien+1).'\'
                WHERE rang=\''.$sA.'\'';
      mysql_query($update); 
     
    //on vérifie si l'instruction est bien effectuée et si les données sont correctes :
      echo $paysAncien.' - '.$sA ;
      }

    Encore désolé.

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut
    Je te remercie SpiritOfDoc, mais ça fonctionne pas non plus

  15. #15
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Si tu n'as pas d'erreur, c'est que le problème n'est pas là :p.

    Par exemple, la valeur de `rang` est déterminé par quoi ?

  16. #16
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 531
    Par défaut
    Il n'y a pas de problème au niveau de rang, comme j'ai dit dans le tout premier message : c'est le bon pays qui est updaté, à la bonne spécialité, mais ça n'est pas la bonne valeur qui est inscrite : l'incrémentation ne se fait pas.

    Pas avancé d'un pouce en fait.

    Je vais finir par faire un truc pourri avec 20 requêtes pré-écrites et un if pour savoir laquelle appeler

  17. #17
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Contient un chiffre déclaré comme ceci :
    ou bien ??

  18. #18
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Bon jfais une dernière tentative puis je m'avoue vaincu .

    Si tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    if($specialiteAancienne==0)  
    {
    $update=" UPDATE `categorieAnnuaire` 
    SET $paysAncien=$paysAncien + 1 
    WHERE rang='$sA'"; 
    echo $update;
    }
    Et que tu l'exécutes dans phpMyAdmin, ca donne quoi?

    SpiritOfDoc>> $paysAncien contient un nom de champ

  19. #19
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 379
    Par défaut
    Citation Envoyé par billoum
    SpiritOfDoc>> $paysAncien contient un nom de champ
    Ba pourquoi y ajouter 1 ?
    A moins que le but soit juste de rajouter un 1 à la fin de la donnée ... la faut prendre le problème autrement :p (mais vraiment pas plus dur)

  20. #20
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2004
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 496
    Par défaut
    Quand tu fais nom_colonne = nom_colonne + 1, tu incrémentes la valeur de nom_colonne de 1.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Ma requête UPDATE ne fonctionne pas
    Par geeka dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 29/04/2015, 13h39
  2. [MySQL] Requête update ne fonctionnant pas tout le temps
    Par feldi dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/03/2011, 15h44
  3. [AC-2007] Requête Update ne fonctionne pas
    Par franckimmo dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 24/02/2010, 14h58
  4. Requête Update ne fonctionnant pas
    Par Arthorius dans le forum Langage SQL
    Réponses: 4
    Dernier message: 06/01/2009, 09h50
  5. requête update qui marche pas
    Par MrsFrizz dans le forum Langage SQL
    Réponses: 4
    Dernier message: 01/12/2004, 08h16

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