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

Requêtes MySQL Discussion :

Requête utilisant des expressions régulières, ou similaire ?


Sujet :

Requêtes MySQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 42
    Points : 25
    Points
    25
    Par défaut Requête utilisant des expressions régulières, ou similaire ?
    Bonjour,

    J'ai développé une modification de phpBB qui permet de paramétrer la largeur des images que l'on veut insérer dans un post via la balise IMG.
    En clair, normalement on ne peut faire que ça...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [img]http://www.adresse_image[/img]
    ...et ma modif permet ça...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [img="450"]http://www.adresse_image[/img]
    ...ou "450" est la largeur souhaité de l'image.

    Problème, cela modifie la manière dont la balise IMG est codée et stockée en base, et donc si un admin veut désinstaller ma modification, le code standard de phpBB ne saura plus reconnaitre les balises IMG stockées du temps de la modification.
    Il me faut donc fournir une procédure de retrait des ="xxx" en base.

    Donc question, existe t-il la possibilité de créer une requête qui puisse chercher dans un champ des chaines matchant un template (genre [img="xxx"] - à passer dans le bon format de template évidement) pour les remplacer par une chaine simple ([img]) ?

    Sinon quel serait votre conseil pour retirer ces ="xxx" ? Passer par un script php (MySQL est associé à php) ? Une autre solution ?

    Merci d'avance !

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Somme (Picardie)

    Informations forums :
    Inscription : Mars 2002
    Messages : 36
    Points : 33
    Points
    33
    Par défaut
    Il existe la commande REPLACE() mais elle ne permet pas de faire un remplacement en expression régulière.

    Au mieux, tu pourras sortir les lignes concernées par une requête du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table WHERE message REGEXP '\\[img=[0-9]+\\]' ;

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 42
    Points : 25
    Points
    25
    Par défaut
    Merci d'avoir répondu !
    Citation Envoyé par mr32 Voir le message
    Il existe la commande REPLACE() mais elle ne permet pas de faire un remplacement en expression régulière.

    Au mieux, tu pourras sortir les lignes concernées par une requête du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM table WHERE message REGEXP '\\[img=[0-9]+\\]' ;
    Ok. Ca peut déjà faire gagner du temps sur le traitement de ne sélectionner que les bonnes lignes du premier coup.
    Donc ensuite, remplacement en php et on ré-injecte le tout ?
    Personne n'a de solution directe en SQL ?

    Et sinon dernière question : tout ça va passer par un tableau en php. Donc n'y a t-il pas une limite de taille pour le tableau, le traitement et l'UPDATE ?
    Je peux faire sortir 10 000, 100 000, 1 000 000 de posts, les traiter et les ré-injecter sans pb ? N'y a t-il une limite raisonnable à ne pas dépasser, quitte à prévoir de couper les traitements ?

    Merci d'avance

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/10/2010, 21h00
  2. Utilisation des expressions régulières dans Find/Replace
    Par Kicker dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 22/06/2009, 01h20
  3. Réponses: 2
    Dernier message: 26/11/2008, 09h28
  4. Réponses: 6
    Dernier message: 30/05/2007, 17h31
  5. Réponses: 5
    Dernier message: 20/09/2006, 13h16

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