Remplacement global dans la base de données

Bonjour

Je voudrais remplacer une expression par une autre dans une trentaine d'articles. J'ai pensé à ouvrir le fichier XML d'une sauvegarde du site dans un éditeur de texte, d'y procéder au remlacement, puis de réinstaller cette sauvegarde. Est-ce une bonne idée? Y a-t-il des contre-indications? Y aurait-il une meilleure solution? Merci de votre aide.

Richard Aubry

Bonsoir,

Je voudrais remercier toutes les personnes qui m'ont conseillées.
En effet, il suffisait d'aller dans IMG, de chercher le fichier et de l'effacer.

Tout est réglé, et j'ai enfin accès à la page "Contenu du site", et je enfin commencer à travailler.
Cordialement.

Pascale NEJJAR PERNOT
www.culturepaysanne.com

Richard Aubry a écrit :

Bonjour

Je voudrais remplacer une expression par une autre dans une trentaine d'articles. J'ai pensé à ouvrir le fichier XML d'une sauvegarde du site dans un éditeur de texte, d'y procéder au remlacement, puis de réinstaller cette sauvegarde. Est-ce une bonne idée? Y a-t-il des contre-indications? Y aurait-il une meilleure solution? Merci de votre aide.

Richard Aubry
  
Bonsoir,
  c est en tout cas une solution qui fonctionne tres bien et que j ai beaucoup utilisee a un moment...Il faut faire certainement gaffe dans ton cas a ce que le motif de ta recherche ne puisse pas se retrouver dans d autres expressions que celles que tu souhaites remplacer...Sinon, je suppose que l on peut egalement faire une requete sur la bdd mais la, je sais pas ben faire...

triton
  

Richard Aubry wrote:

Je voudrais remplacer une expression par une autre dans une trentaine d'articles.

Pour faire ça j'utilise une requête MySQL avec phpMyAdmin.

La syntaxe c'est :
update tablename set field = replace(field,'search_for_this','replace_with_this');

Par ex. il y avait toute une série d'articles où je voulais changer les images :

update spip_articles set texte = replace(texte,'<img64|','<img497|');
update spip_articles set texte = replace(texte,'<img64>','<img497>');

(quand on travaille avec un site multilingue c'est plus vite de faire comme ça)

C'est plus compliqué si on a des caractères spéciaux à remplacer :

# see: http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html
  update spip_articles set texte = replace(texte,'.gif\' border=0 width=\'300\' height=\'400\'>','.gif\' alt=\'\' border=\'0\' width=\'300\' height=\'400\' />');

-- et je conseille de *toujours* essayer d'abord sur une copie du site et examiner le résultat avant de faire tourner sur le vrai site.

Paolo

Le 25 janv. 08 à 21:07, Richard Aubry a écrit :

Bonjour

Je voudrais remplacer une expression par une autre dans une trentaine
d'articles. J'ai pensé à ouvrir le fichier XML d'une sauvegarde du
site dans un éditeur de texte, d'y procéder au remlacement, puis de
réinstaller cette sauvegarde. Est-ce une bonne idée ? Y a-t-il des
contre-indications ? Y aurait-il une meilleure solution ? Merci de
votre aide.

Richard Aubry

il n'y a pas de problème ; ce sera plus lourd à faire sur un très très gros fichier xml. Alors tu pourras aussi le faire par phpMyAdmin.
Enfin, pour une trentaine d'articles, je le fais généralement à la main, article par article ce qui n'est pas trop productif :slight_smile:
Claude

Merci Triton pour la confirmation de mon idée. Mais la solution de Paolo de travailler directement dans la bd est plus séduisante. Cependant, je n'ai aucune expérience de travail avec MySQL. Alors

- Comment est-ce que je me connecte sur la bd qui est chez mon hébergeur?

Le 25/01/2008 à 17:04, Paolo a écrit :

Richard Aubry wrote:

Je voudrais remplacer une expression par une autre dans une trentaine
d'articles.

Pour faire ça j'utilise une requête MySQL avec phpMyAdmin.

La syntaxe c'est :
update tablename set field = replace(field,'search_for_this','replace_with_this');

Par ex. il y avait toute une série d'articles où je voulais changer les images :

update spip_articles set texte = replace(texte,'<img64|','<img497|');
update spip_articles set texte = replace(texte,'<img64>','<img497>');

(quand on travaille avec un site multilingue c'est plus vite de faire comme ça)

C'est plus compliqué si on a des caractères spéciaux à remplacer :

# see: http://dev.mysql.com/doc/refman/5.0/en/string-syntax.html
  update spip_articles set texte = replace(texte,'.gif\' border=0 width=\'300\'
height=\'400\'>','.gif\' alt=\'\' border=\'0\' width=\'300\' height=\'400\' />');

- Pour les caractères accentués qui font partie de mon texte, est-ce que ça fait partie des caractères spéciaux dont tu parles?

-- et je conseille de *toujours* essayer d'abord sur une copie du site etexaminer le résultat avant de faire tourner sur le vrai site.

- Comment on fait pour travailler sur une copie de son site?

Paolo

Richard

Richard Aubry wrote:

- Comment est-ce que je me connecte sur la bd qui est chez mon hébergeur?

Question à poser à ton hébergeur :slight_smile:
Presque tous mettent phpMyAdmin à disposition.

- Pour les caractères accentués qui font partie de mon texte, est-ce que ça fait partie des caractères spéciaux dont tu parles?

Non. Mais si la connexion à la base est "tordue" (ne correspond pas à l'encodage de la base elle-même) des surprises avec des caractères accentués sont toujours possibles. Et c'est entre autres pour cela que c'est bien de tester d'abord.

- Comment on fait pour travailler sur une copie de son site?

Installer une deuxième copie de la même version de SPIP soit localement, soit chez ton hébergeur, qui connecte à une autre base de données. Ensuite restaurer une sauvegarde de ton site sur cette installation fraîche.

Tu pourrais aussi juste faire une sauvegarde SPIP avant ton operation cherche/remplace, et si elle échoue tu restaures cette sauvegarde. C'est plus facile, mais moi-même je préfère tester sur une autre base complètement séparée.

* Nejjar Pernot Pascale tapuscrivait, le 25/01/2008 21:21:

Bonsoir,

Je voudrais remercier toutes les personnes qui m'ont conseillées.
En effet, il suffisait d'aller dans IMG, de chercher le fichier et de l'effacer.

Tout est réglé, et j'ai enfin accès à la page "Contenu du site", et je enfin commencer à travailler.
Cordialement.

Pascale NEJJAR PERNOT
www.culturepaysanne.com

Attention, le clic sur le logo renvoi sur une 404 !
Tout ça parce que le nom de domaine sans www n'est pas configuré
==> 1) corriger l'URL du site dans la configuration de SPIP
==> 2) corriger la config du DNS

--
RealET

Merci Paolo. Merci à tous.

Richard