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 :

Modifier une partie d'un champ en SQL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 118
    Points : 43
    Points
    43
    Par défaut Modifier une partie d'un champ en SQL
    Bonjour,

    J'ai une base Mysql et phpmyadmin.

    Dans une table utilisateur, je souhaite modifier une partie d'un champ, en fait les adresses mails de mes utilisateurs ont changé et je dois modifier le domaine uniquement... je sais faire un update tout simple mais je ne sais pas modifier une partie du champ en conservant l'autre partie (par ex : toto@stade.fr qui doit devenir toto@StadeToulousain.fr )

    Merci
    Mikka

  2. #2
    Membre averti Avatar de beejeridou
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2007
    Messages
    280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Février 2007
    Messages : 280
    Points : 342
    Points
    342
    Par défaut
    Dans ce cas la, tu récupère ton champs email, dans ta base et tu le traite en php, la fonction str_pos est ton amie!

    regarde bien l'exemple, il y a ta réponse dedans!

    http://us.php.net/str_pos

  3. #3
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    Directement en SQL c'est faisable aussi.
    Il te faut remplacer le morceau de chaîne de caractères situé après l'@ par une autre chaîne de caractère. Donc tu gardes la gauche de la chaine jusqu'à l'@ et tu ajoutes ta chaine de remplacement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE TaTable
    SET TaColonne = CONCAT(LEFT(TaColonne, INSTR(TaColonne, '@')), 'TaNouvelleChaine')
    WHERE RIGHT(TaColonne, LENGTH(TaColonne) - INSTR(TaColonne, '@')) = 'TaChaineARemplacer'
    A essayer.

    PS : Allez le Stade !
    Doublé Championnat et Coupe d'Europe cette année ?

    EDIT à 11h11 : Correction de la requête

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 118
    Points : 43
    Points
    43
    Par défaut
    je sais pas faire du php !

    alors j'ai testé le update :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE `glpi_users`
    SET email = LEFT(email, INSTR(email, '@')) || stade-toulousain.fr
    WHERE RIGHT(email, LENGTH(email - INSTR(email, '@'))) = stade.fr

    Erreur
    requête SQL:

    UPDATE `glpi_users` SET email = LEFT( email, INSTR( email, '@' ) ) || stade.fr WHERE RIGHT( email, LENGTH( email - INSTR( email, '@' ) ) ) = stade-toulousain.fr

    MySQL a répondu:

    #1054 - Unknown column 'stade.fr' in 'where clause'


    PS : vive le stade !

  5. #5
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    J'ai remarqué aussi qu'il y avait une erreur et je viens de corriger la requête.
    N'oublie pas de mettre entre ' les chaines de caractère !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 118
    Points : 43
    Points
    43
    Par défaut
    idem

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    118
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 118
    Points : 43
    Points
    43
    Par défaut
    super ça marche !

    merci beaucoup

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Modifier les caracteres à droite d'un '/'
    Bonjour,
    J'ai testé votre requète:
    UPDATE `stockvnc`
    SET `couleurint` = CONCAT(LEFT(`couleur`, INSTR(`couleur`, '/')), '*')
    WHERE RIGHT(`couleur`, LENGTH(`couleur`) - INSTR(`couleur`, '/')) != ''

    elle fonctionne à merveille pour les caratères à gauche du '/' , mon but est de modifier, supprimer les caractères à droite du '/'.

    J'ai essayer différentes modif, mais pas de solution pour l'instand, y aurait il une âme charitable ?
    Merci d'avance

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

Discussions similaires

  1. modifier une partie d'un champ
    Par yohann26 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/12/2007, 10h04
  2. Réponses: 4
    Dernier message: 19/06/2007, 17h51
  3. Réponses: 14
    Dernier message: 26/03/2007, 16h52
  4. tri sur une partie d'un champ
    Par yoline dans le forum Access
    Réponses: 4
    Dernier message: 19/09/2005, 11h25
  5. Modifier une partie de la source
    Par Sékiltoyai dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 29/10/2004, 21h52

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