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

MySQL Discussion :

Update sur toute une table


Sujet :

MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    FoxLeRenard
    Invité(e)
    Par défaut Update sur toute une table
    Bonjour,
    ça parait bête, mais je ne connais pas la syntaxe la plus simple pour faire une mise a jour tel que je vais vous l'expliquer :

    1) J'ais une table "matable"
    2) dedans se trouve une valeur ordinaire, je veux dire ni unique ni une clé
    son nom est "Article" qui est un nombre celui que je veux changer
    3) j'ais un array "tranpose" dans chaque rang de cet array corespond le
    nouveau numéro que devrait avoir ma valeur "Article"

    Tel que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $Article=$transpose[$Article]
    Voila , comment feriez vous la boucle de lecture et mise a jour de ma "matable"

    Mille mercis d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    Plutôt qu'un array en PHP, il faut que tu fasses une table (au besoin temporaire) en MySQL.

  3. #3
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par Antoun Voir le message
    Plutôt qu'un array en PHP, il faut que tu fasses une table (au besoin temporaire) en MySQL.
    Merci, ma table est faite et fait 50 lignes
    En fait j'ais essayé ça mais j'ais une erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     $Flag1=mysql_connect($Serveur,$User,$Mdp);
     $Flag2=mysql_select_db($MaBase);
     $result=mysql_query( "UPDATE fomes  SET
     
      MsgFoNum='$LesX[MsgFoNum]'
     
      WHERE MsgIndex>0 and MsgIndex<9999");
      mysql_close();

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    OK, maintenant donne-moi le code de création de tes tables et la transposition à effectuer.

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par Antoun Voir le message
    OK, maintenant donne-moi le code de création de tes tables et la transposition à effectuer.
    Tu dois parler de truc trop forts pour moi, simplement ma table fomes

    je veux la lire en entier, et a chaque data lus, un par un, je vais prendre dedans la valeur actuelle de MsgFoNum et la remplacée par le contenu de $LesX[MsgFoNum]

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 291
    Par défaut
    je voulais juste connaître les noms de tes deux tables et des colonnes, mais tant pis, je vais inventer.

    Si j'imagine donc que tu veux modifier la colonne Article de la table Ma_table, en utilisant la table Recodage avec les colonne Ancien_Num et Nouvo_Num, cela donne :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    update ma_table T 
      inner join recodage R on T.article = R.ancien_num
    set T.article = R.nouvo_num ;

    Cette requête met à jour TOUTE la table en une seule fois, et ne doit PAS être mise dans une boucle.

    Les modifications étant irréversibles, il est fortement recommandé de faire une copie de ta table avant de tester.

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Tu es trés gentil, et je te remercies de ta réponse, mais j'insistes, relis ma question clairement formulée, je n'ais qu'une table et un ARAY !

    C' est pas génant jespéres !!!

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 97
    Par défaut
    La solution qu'il te propose c'est de creer une table temporaire
    recodage et d'y inserer ton tableaux avec un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    // Creer la table recodage (ancien_num, nouvo_num)
     
    // Inserer le contenu de $transpose dedans
     
    foreach ($transpose as $ancien_num => $nouvo_num)
    {
        $query = "INSERT INTO recodage (ancien_num, nouvo_num)
                                 VALUES ( ".$ancien_num.",".$nouvo_num." ) ;
                       ";
     
        //Code pour executer la query
    } 
     
    // Utilise la query de Antoun
     
    //  Detruire la table recodage

    Voila je pense que c'est +- ce qu'il faut faudrait faire.

Discussions similaires

  1. UPDATE sur tout une table
    Par ddaime dans le forum Développement
    Réponses: 5
    Dernier message: 12/06/2011, 09h52
  2. Modification sur toute une table
    Par FoxLeRenard dans le forum Débuter
    Réponses: 3
    Dernier message: 11/12/2008, 20h57
  3. Réponses: 4
    Dernier message: 06/09/2006, 14h04
  4. [Debutant] faire un update sur tout une table
    Par Karibou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2005, 14h44

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