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 :

Construction UPDATE Dynamique [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 40
    Par défaut Construction UPDATE Dynamique
    Bonjour à tous,

    Je boss actuellement sur un projet, j'essaie d'optimiser mes requêtes aux max.

    J'ai une requête de type UPDATE, je récupère au format JSON les données à mettre à jours,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $user = json_decode($body);
    $sql = "UPDATE users SET champ1=:Val1, champ2=:Val2, champN=:ValN WHERE id=:id";
    $user de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    stdClass Object
    (
        [champ1] => "Val1",
        [champ2] => "Val2",
        [champN] => "ValN"
    )
    J'aimerais connaître le meilleur moyen de construire ma requête en parcourant mon tableau dans SET pour ne plus avoir à lister les champs 1 à 1.

    Merci de votre aide.

  2. #2
    Membre expérimenté
    Avatar de Kyuudan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2015
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2015
    Messages : 100
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par clems_t Voir le message
    Bonjour à tous,

    Je boss actuellement sur un projet, j'essaie d'optimiser mes requêtes aux max.

    J'ai une requête de type UPDATE, je récupère au format JSON les données à mettre à jours,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $user = json_decode($body);
    $sql = "UPDATE users SET champ1=:Val1, champ2=:Val2, champN=:ValN WHERE id=:id";
    $user de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    stdClass Object
    (
        [champ1] => "Val1",
        [champ2] => "Val2",
        [champN] => "ValN"
    )
    J'aimerais connaître le meilleur moyen de construire ma requête en parcourant mon tableau dans SET pour ne plus avoir à lister les champs 1 à 1.

    Merci de votre aide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    $user = json_decode($body);
    $cpt = 1;
    $champ = "champ";
     
    foreach ($user as $value) {
    $var = $champ . $cpt;
    $sql = "UPDATE users SET '$var' = '$value[$var]' WHERE id=:id";
    $cpt++;
    }
     
    ?>
    Salut,

    Quelque chose de ce genre là ne marcherait pas ?

  3. #3
    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
    Par défaut
    Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql = 'UPDATE users SET ' . implode(' = ?, ', array_keys($tableau)) . ' = ?' . ' WHERE id = :id';
     
    $param = array_values($tableau);
    $param[] = $id;
    $pdo->execute($param);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2013
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2013
    Messages : 40
    Par défaut
    Merci à vous 2, problème résolu

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

Discussions similaires

  1. Construction formulaire dynamique
    Par adurandet dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 04/01/2010, 18h04
  2. optimiser update dynamique
    Par hoolako dans le forum PL/SQL
    Réponses: 2
    Dernier message: 29/04/2009, 16h55
  3. [MySQL] Construction menu dynamique avec titre
    Par gtraxx dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/04/2009, 15h55
  4. [Stratégie] faire un update dynamique !
    Par guitariste dans le forum Général Java
    Réponses: 5
    Dernier message: 18/08/2008, 00h42
  5. Réponses: 2
    Dernier message: 27/08/2007, 14h21

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