Suppression de contenu en masse

Fermé
wolfatthedoor - 21 janv. 2015 à 14:15
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 - 23 janv. 2015 à 13:57
Bonjour,

Je souhaite supprimer du contenu présent dans plusieurs articles de mon site (plus de 2000 pages) et l'idéal serait une requête pour supprimer ce contenu en masse (Site sous wordpress).

Le contenu que je souhaite supprimer dans mes pages est une iframe.

Donc je souhaite trouver une requête pour effacer le contenu qui se trouve entre "<iframe" et "</iframe>" (y compris ces 2 balises).

Connaissez-vous une solution ?

Merci d'avance

Romuald

2 réponses

wolfatthedoor
22 janv. 2015 à 10:52
J'ai avancé sur le sujet, avec cette requête :

update table set champ = concat(substring(post_content, 0, INSTR(post_content, '<iframe')), substring(post_content, INSTR(post_content, '</iframe>') + length('</iframe>')))

Ça fonctionne presque MAIS :

- sur les articles où il y a l'iframe, ça supprime bien l'iframe mais ça supprime également tout le contenu avant l'iframe.
- sur les articles où il n'y a pas d'iframe, ça supprime les 16 premiers caractères de l'article.
0
flokocha Messages postés 1510 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 10 octobre 2015 281
23 janv. 2015 à 13:57
Salut,

Je te propose de procéder tout simplement comme ceci :

UPDATE table SET champ = CONCAT(SUBSTRING_INDEX(champ, '<iframe', 1), SUBSTRING_INDEX(champ, '</iframe>', -1));

Illustration :

mysql> SET @test = "<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div><iframe>Tata Yoyo qu'est ce qu'il y a sous ton grand chapeau</iframe><div>Vivamus mollis quis nisl dignissim mollis. Phasellus aliquet at nisl et accumsan.</div>";
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT CONCAT(SUBSTRING_INDEX(@test, '<iframe', 1), SUBSTRING_INDEX(@test, '</iframe>', -1)) as RESULT\G
*************************** 1. row ***************************
RESULT: <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div><div>Vivamus mollis quis nisl dignissim mollis. Phasellus aliquet at nisl et accumsan.</div>
1 row in set (0.00 sec)
0