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 :

un update qui ne met pas les champs à jour [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 130
    Points : 68
    Points
    68
    Par défaut un update qui ne met pas les champs à jour
    bonjour,j'ai un gros probleme,
    j'ai 2 tables qui sont créées et remplies:

    la table pim_rel (id_rel,nom_rel,id_class1,nom_class1,id_class2,nom_class2).

    et la table classe_psm_raffine(id_class,nom_class).

    ce que je veux moi c'est mettre à jours les champs de id_class1 et id_class2 de la table pim_rel avec le id_class de la table classe_psm_raffine (en faisant égalité sur les noms de classes)

    j'ai écrit le code suivant qui me semble en vue correcte,mais aprés execution il laisse les champs tels quels.

    voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("test");
    $retour=mysql_query("SELECT * FROM classe_psm_raffine");
    while($data=mysql_fetch_array($retour))
    {echo $data['id_class'];
    echo $data['nom_class'];
    mysql_query("UPDATE pim_rel SET id_class1=(SELECT id_class FROM classe_psm_raffine WHERE nom_class='$data[nom_class]') WHERE nom_class1='$data[nom_class]'");
    mysql_query("UPDATE pim_rel SET id_class2=(SELECT id_class FROM classe_psm_raffine WHERE nom_class='$data[nom_class]') WHERE nom_class2='$data[nom_class]'");
    }
    ?>
    ps: les echo $data['id_class'] et $data['nom_class'] c'était pour m'assurer si il affiche les bons noms et id.

    merci de m'aider

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    J'ai récrée le meme contexte et chez moi cela fonctionne.
    Donc la seule explication que je vois c'est qu'aucun nom_class ne soit egale à aucun nom_class1 ni à aucun nom_class.

    Par contre je ne comprends pas bien ce que tu fais parce pour moi
    (SELECT id_class FROM classe_psm_raffine WHERE nom_class='$data[nom_class]') ca vaut $data[id_class] tout simplement

  3. #3
    jnore
    Invité(e)
    Par défaut
    Je trouve que ce script est plus compliqué qu'il ne devrait!

    Voici ce que j'aurais écrit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("test");
     
    $req1="UPDATE pim_rel sous SET id_class1=(SELECT id_class FROM classe_psm_raffine WHERE nom_class=sous.nom_class1)";
    mysql_query($req1);
     
     
    $req2="UPDATE pim_rel sous SET id_class2=(SELECT id_class FROM classe_psm_raffine WHERE nom_class=sous.nom_class2)";
    mysql_query($req2);
    Le while est obsolète avec la sous requete qui est dépendente de la table qui doit être mise à jour.

    Dire si ok.

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

Discussions similaires

  1. [A-03] UPDATE qui ne met pas à jour
    Par Milyshyn76 dans le forum VBA Access
    Réponses: 2
    Dernier message: 10/11/2008, 10h15
  2. [MySQL] update qui ne met pas à jour avec mysql
    Par wyllos dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/09/2008, 11h59
  3. un update qui ne met pas à jour
    Par dor_boucle dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/10/2005, 09h31

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