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 :

Renommer le contenu d'un champ automatiquement


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut Renommer le contenu d'un champ automatiquement
    j'aimerais renommez le donnés contenue dans un champ d'une table par celle d'un autre champs /
    exemple

    champ "pdf" contient des données nommé comme suit : 10.pdf, 11.pdf, 12.pdf etc..

    champ "titre" contient des données comme suit : toto en rouge, toto en bleu, toto en jaune etc.. ( il y'a des espaces entre les mots )

    j'aimerais que par exemple dans le champ "pdf" 10.pdf deviennent toto-en-bleu.pdf , que 11.pdf deviennent toto-en-bleu.pdf etc...

    je pense qu'il y'a une manipe avec update et les expressions régulières,
    pourriez vous me lancez sur une piste

    merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 290
    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 290
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    UPDATE ta_table
    SET pdf = CONCAT(REPLACE(titre, ' ', '-') , '.pdf') ;

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut
    merci beaucoup pour ta réponse
    je vais essayé ta solution
    ( p'tete même acheter ton bouquin

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut
    ça marche impec.. il renomme bien les donnés du champ "pdf" comme souhaité, en remplaçant les espaces blancs par des tirets, le seul hic c'est qu'il m'inclue dans le nom des accents , des majuscules et des apostrophes..chose normal car ont les retrouve dans les noms des données du champs titre

    exemple champ titre j'ai ceci : "L' épreuve de force"

    dans le champ pdf correspondant : "P145.pdf"

    après l'opération sql comme résultat dans le champ pdf j'ai "L'épreuve-de-force.pdf"

    hors il faudrait comme résultat "P145-epreuve-de-force.pdf" ( j'ai besoin qu'il garde en début de nom sa nomenclature actuel) et qu'il soit "nettoyé" des caractères pouvant poser problèmes dans une url

    est t'il possible d'obtenir ce que je veux avec seulement une requête sql
    ou bien il faut faire un fichier php avec expression régulière ?

    merci

  5. #5
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 290
    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 290
    Par défaut
    Que fais-tu du L avant l'apostrophe ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut
    soit il est possible de le supprimer en mettant une règle du style "si caractère tout seule avant un apostrophe alors le remplacer par un tiret" soit si c pas possible , le garder ce qui ferait un nom comme ça :"P145-L-epreuve-de-force.pdf"
    ou mieux si il est possible de forcer la casse le mettre en minuscule ce qui ferait : "P145-l-epreuve-de-force.pdf"

  7. #7
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 290
    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 290
    Par défaut
    Citation Envoyé par serna Voir le message
    ça marche impec.. il renomme bien les donnés du champ "pdf" comme souhaité, en remplaçant les espaces blancs par des tirets, le seul hic c'est qu'il m'inclue dans le nom des accents , des majuscules et des apostrophes..chose normal car ont les retrouve dans les noms des données du champs titre
    est t'il possible d'obtenir ce que je veux avec seulement une requête sql
    ou bien il faut faire un fichier php avec expression régulière ?
    En théorie, c'est possible. Néanmoins, on ne peut pas faire de remplacement avec les expressions régulières de MySQL ; du coup ça oblige à faire un REPLACE imbriqué pour chaque caractère à remplacer ; si tu veux remplacer tous les caractères non-alphabétiques, ça fait beacoup trop d'imbrications.

    Concrètement, tu as deux solutions :
    • faire un script PHP avec du preg_replace ou du ereg_replace
    • créer une fonction MySQL qui effectue les remplacements que tu souhaites

    L'intérêt de la seconde solution est de garder cette fonction sur le SGBD, où elle resservira sans doute fréquemment.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 412
    Par défaut
    en fait de caractère à remplacer il y'a l'apostrophe, et les accents

    cette fonction mysql dont tu parle quelle allure aurait elle ?

    merci de ces précieux conseil, je vais regarder ce que je peux faire.

Discussions similaires

  1. Réponses: 10
    Dernier message: 03/03/2009, 11h46
  2. Insérer le contenu d'un champ texte dans un JavaScript
    Par yoyot dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/02/2005, 14h12
  3. incrementer un champ automatiquement
    Par vijeo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 18/01/2005, 22h01
  4. Contenu d'un champ tronqué dans mon input box
    Par Marmot dans le forum ASP
    Réponses: 2
    Dernier message: 27/10/2004, 13h30
  5. Recuperer le contenu d'un champs texte
    Par bouboussjunior dans le forum ASP
    Réponses: 4
    Dernier message: 29/09/2004, 14h16

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