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 select dans un update [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut un select dans un update
    Le seul moyen que j'ai trouver pour récupérer l'id d'un champ et mettre a jour un autre champ en une seule requête est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    UPDATE site_user
        SET team_id = (
            SELECT id FROM site_team
            WHERE admin_id = 1
        )
    Il n'y a pas un moyen pour éviter ce genre de bizarrerie ?! Ou est ce correcte lol ? (ca a l'air de marché en tout cas)

  2. #2
    Membre éprouvé Avatar de FCYPBA
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 745
    Points : 952
    Points
    952
    Par défaut
    C'est très bien ca, je ne vois pas ce qui te choques
    Pierre
    1. Dans le manuel ( PHP, MySQL,..., rayez la mention inutile), tu te plongeras à deux fois plutôt qu'aucune.
    2. Dans la doc php, tu liras attentivement les sections Chaines de caractères, Tableaux et Système de fichiers
    3. Un code rapide c'est bien, un code maintenable c'est mieux
    ...

    Why was the font tag an orphan ? Because it didn't have a font-family.

  3. #3
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    Bah c'est la première fois que je tente des truc pareille et c'est d'ailleur aussi la première fois que je le voit LOL

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    C'est tout à fait correct et l'on appel ca des requetes imbriquées. Mais c'est bizarre, chez moi ça ne marche pas avec tout les SGBD .

    Mais c'est très utile, surtout ça t'évite des lignes de codes supplémentaires

    Juste un petit bémol, vu le type que tu recherches (dans le filtre) es tu sur que c'est ce que tu veux car ca va mettre à jour pour tous les champs trouvés. Il faudrait rajouter une condition

  5. #5
    Membre expert

    Profil pro
    imposteur
    Inscrit en
    Avril 2003
    Messages
    3 308
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : imposteur

    Informations forums :
    Inscription : Avril 2003
    Messages : 3 308
    Points : 3 377
    Points
    3 377
    Par défaut
    Citation Envoyé par Kerod
    C'est tout à fait correct et l'on appel ca des requetes imbriquées. Mais c'est bizarre, chez moi ça ne marche pas avec tout les SGBD .
    Notamment pas sur MySQL v<4.1

  6. #6
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Précision : si je me souviens bien de mes cours de BD (c'est pas gagné), pour que ça soit correct il faut que ta requete imbriquée ne renvoie qu'une seule colone d'une seule ligne, ce qui signifie :
    - un seul champ dans le select (ce que tu as fait)
    - ta clause where doit porter sur la clé primaire de la table

  7. #7
    Rédacteur
    Avatar de Yoshio
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 732
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 732
    Points : 2 853
    Points
    2 853
    Par défaut
    oui ca ne revoie qu'un champ, la clé primaire en question

    Bah merci des réponses apparament c'est bien comme ca

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

Discussions similaires

  1. utilisation d'un select dans un update ou insert.
    Par Rafter dans le forum Développement
    Réponses: 6
    Dernier message: 21/07/2014, 13h28
  2. [MySQL] Select dans un Update
    Par Nympheasi dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 31/07/2009, 00h55
  3. Update et affectation select dans variable
    Par dolyne.b dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 22/05/2007, 17h44
  4. Recupérer la valeur d'un select imbriqué dans un update
    Par miniil dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/07/2006, 10h49
  5. Inclure un SELECT dans une requète Update
    Par carolinebelle dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/07/2005, 14h19

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