Keroin Posté 1 Décembre 2006 Posté 1 Décembre 2006 (modifié) 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 . En partant du principe que ma table se nomme ja_book, comment la requête doit-elle être formulée ? Modifié 1 Décembre 2006 par Keroin
TheRec Posté 1 Décembre 2006 Posté 1 Décembre 2006 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.
Keroin Posté 1 Décembre 2006 Auteur Posté 1 Décembre 2006 (modifié) Excellent, tout a parfaitement fonctionné. Merci beaucoup TheRec pour ta rapidité et ton efficacité Et merci aussi pour le lien, je ne l'avais pas trouvé et je pense qu'il va me servir Modifié 1 Décembre 2006 par Keroin
TheRec Posté 1 Décembre 2006 Posté 1 Décembre 2006 De rien, ça vaut toujours la peine de se pencher sur le manuel, mais avant il faut le trouver
suede Posté 7 Décembre 2006 Posté 7 Décembre 2006 (modifié) 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 Modifié 7 Décembre 2006 par suede
Damon Posté 10 Décembre 2006 Posté 10 Décembre 2006 Merci pour l'astuce. Bien pratique en effet. Ca m'intéressait, mais j'ai jamais voulu m'y pencher...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant