Jump to content
Sign in to follow this  
Keroin

Remplacer des termes dans une table sql sous phpmyadmin

Rate this topic

Recommended Posts

Bonjour à tous,

Voilà ce que je cherche à faire, j'ai une des tables de ma base de données qui contient dans le champs description l'url d'une image qui est répétée environ 1000 fois pour un peu plus de 800 id (c'est l'url d'une image)

Cette url est pour le moment sous la forme -[color=#3333FF]http://www.domaine.tld/images/site/image.gif et je souhaiterais que ces termes soient remplacés par /images/image.gif (l'image n'est plus située au même endroit). A noter, le champs description comprend d'autres données qui ne doivent pas être modifiées.

Je suppose qu'il faut donc que je créé une requête sql à exécuter dans phpmyadmin pour la table en question lui donnant l'ordre de me trouver l'url1 et de la remplacer par l'url2 en utilisant la commande str_replace (ou quelque chose comme ça ???)

Le problème est le suivant, je n'y connait pas grand chose en formulation de requête sql et je n'ai pas envie de faire de bêtises avec ma base :blush:.

En partant du principe que ma table se nomme ja_book, comment la requête doit-elle être formulée ?

Edited by Keroin

Share this post


Link to post
Share on other sites

Bonjour,

Voici une possibilité :

UPDATE ja_book SET description = REPLACE(description,'http://www.domaine.tld/images/site/image.gif', '/images/image.gif') WHERE description LIKE '%http://www.domaine.tld/images/site/image.gif%'

Concernant la syntaxe et les fonctions sur les chaînes de caractères sous MySQL, rien ne vaut le manuel MySQL (depuis la version 5 il est traduit entièrement en français, si tu utilises une version précédente fais attention, mais généralement les auteurs mentionnent la version qui fût la première à intégrer telle ou telle fonctionnalité) :)

Bonne continuation.

Share this post


Link to post
Share on other sites

:thumbup: Excellent, tout a parfaitement fonctionné.

Merci beaucoup TheRec pour ta rapidité et ton efficacité :groupwave:

Et merci aussi pour le lien, je ne l'avais pas trouvé et je pense qu'il va me servir ;)

Edited by Keroin

Share this post


Link to post
Share on other sites

De rien, ça vaut toujours la peine de se pencher sur le manuel, mais avant il faut le trouver :)

Share this post


Link to post
Share on other sites

Intéressant :-)

Est-ce qu'il y a moyen d'avoir des expressions régulières ?

J'aimerais pouvoir faire un truc du genre, $1 remplacant la REGEX :

UPDATE phpbb_posts_text  SET post_text  = REPLACE(post_text,'http://www.photos-suede.com/forum/viewtopic.php?t=$1','http://www.photos-suede.com/forum/sweden-ftopic$1.php') WHERE  post_text  LIKE '%http://www.photos-suede.com/forum/viewtopic.php?t=REGEX([09]*)%';

Une autre possibilité :

est-ce qu'il y a moyen de récupérer en résultat d'une requete le REGEX quand il y a un résultat ? Cela limiterait le nombre de replace à faire...

Par exemple

Select id, souschaine([0-9],'description') from table where souschaine([0-9],'description')!=null

C'est un mélange de français, php et mysql, mais j'espere que je me fais comprendre...

François

Edited by suede

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...