Database - Ritoccare i contenuti da query

google-plus Scritto da . Postato in Joomla!

Capita se mettete mano ai contenuti di siti fatti da altri con l'ausilio di un CMS (Joomla! o WordPress) che sia, che siate costretti di mettere mano a ciò che ha fatto nel corso del tempo l'ultimo utente.

A me è capitato con il sito planetkoi.com (ora non più online) di dover mettere mano a contenuti vecchi di 2 anni, accumulati all'interno della precedente versione del del CMS Joomla!, cioè la 2.5.

Dopo aver aggiornato il sito a Joomla! 3 e aver sostituito il vecchio template con uno più moderno e appetibile dal punto di vista dell'utenza, mi sono imbattuto in errori grossolani, come ad esempio l'uso errato di codice HTML nell'inserimento delle descrizioni dei prodotti del componente e-commerce JoomShopping

contenuto del campo di una tabella di un database MySQL

Alcuni tag "DIV" erano stati aperti e non chiusi, probabilmente a causa di uno sciagurato copia/incolla: il risultato? I prodotti a frontend si sormontavano rendendo in alcuni casi indistinguibile il contenuto del prodotto stesso. mad

Tenuto conto che il cliente aveva utilizzato lo stesso modello per almeno un centinaio di prodotti, se avessi dovuto agire prodotto per prodotto sarei impazzito e magari avrei commesso anche io errori grossolani che poi mi sarebbero costati moltissimo in termini di tempo nella ricerca e correzzione... confused

Di certo, per quanto il computer sia stupido (e lo è), se gli si dice esattamente cosa fare lui lo fa in modo preciso e senza compiere errori. Tutto sta nel dare le giuste istruzioni, altrimenti vi potreste trovare con qualche spiacevole sorpresa.

Questo articolo è dunque dedicato al ritocco, aggiornamento e modifica di contenuti multipli e che seguono uno schema comune all'interno di un database attraverso le query.

Ovviamente, potete applicare queste informazioni a qualunque CMS che utilizzi MySql, visto che si tratta di entrare in qualsiasi database manager come phpMyAdmin e digitare l'istruzione per la tabella specifica per poi mandarla in esecuzione (incrociando le dita).

Backup del sito web e del database

Prima di inziare, come sempre, consiglio caldamente di fare il backup, se non dell'intero sito, almeno del database. Così se non ottenete ciò che volete e ne rovinate i contenuti almeno avrete l'opportunità di ripristinarlo e tornare indietro senza dover ricorrere a manovre impossibili.

Per Joomla! esiste lo strumento Akeeba Backup pratico, semplice e gratuito.

Anche per WordPress Akeeba ha creato uno strumento ad-hoc cioé Akeeba Backup for Wordpress. Tuttavia esistono altri tools come Duplicator che fanno la stessa identica cosa egregiamente e gratuitamente.

Ma ora torniamo a noi, ossia:

Come fare a trovare e sostituire testo in un campo di una tabella MySQL

Il mio caso specifico era quello di ritoccare il contenuto descrittivo di centinaia di prodotti all'interno di un componente e-commerce. Ma i campi di applicazione di questo tipo di query sono molteplici. Pensate all'aggiornamento di sigle o codici aziendali, la ragione sociale di un'azienda, delle url o email cambiate e da aggiornare, errori ortografici o tag usati impropiamente (il mio caso), etc.

Con questo metodo potreste anche ritoccare i contenuti di articoli e post di Joomla! (tabella content) o WordPress.

funzione REPLACE

Per sostituire solo una parte del testo contenuto in uno dei campi di una tabella di un database MySql, esiste l'utilissima funzione REPLACE:

UPDATE prefix_nometabella SET `campotabella` = REPLACE(`campotabella`, 'testo da sostituire', 'testo sostitutivo');

Ma vediamola nel dettaglio:

  • UPDATE prefix_nometabella è l'istruzione SQL di aggiornamento di MySql sulla tabella specificata.
  • prefix_ è il prefisso della tabella Joomla! o WordPress che avete scelto (o è stato scelto) al momento dell'installazione del CMS.
  • SET `campotabella` indica all'istruzione UPDATE che il campo su cui operare è quello specificato.
  • = REPLACE(`campotabella`, 'testo da sostituire', 'testo sostitutivo') indica all'istruzione che dovrà essere sostituito all'interno di `campotabella` qualsiasi ricorrenza di 'testo da sostituire' con 'testo sostitutivo'.

(il mio) Esempio pratico:

Nel caso sopra descritto, la query da me utilizzata era simile a questa:

UPDATE `jos_jshopping_products` SET `description_it-IT`  = REPLACE(`description_it-IT`, '<div style="text-align: justify;">', '')

L'intento era quello di eliminare tutti i tag DIV aperti e non chiusi all'interno della descrizione dei prodotti (campo description_it-IT). Il risultato? Un successo!

Semplice no? Questa semplice operazione vi consentirà di risparmiare un sacco di tempo (o almeno lo spero) e grattcapi 'automatizzando' procedure ripetitive che altrimenti dovreste fare a mano record per record.

Sperando che l'articolo possa essere utile ai lettori di questo articolo, auguro a tutti loro un buon replacement... laughing

Se avete commenti o suggerimenti al riguardo, scrivetemi attraverso l'apposito form contatti del blog o commentate l'articolo qui sotto.


Se hai gradito l'articolo, condividilo, basta un click:

Aggiungi commento

I commenti lasciati dagli utenti del blog sono sempre soggetti a controllo prima di eventuale pubblicazione. I commenti non considerati adatti per contenuti, spam o forma saranno eliminati e non pubblicati. Leggi i Termini e Condizioni di utilizzo per maggiori informazioni.


Codice di sicurezza
Aggiorna

  • logo teoca
  • materexcel collabora
  • logo flash pulizie
  • revolution srl
  • logo arcotraslochi
  • montaggio mobili trento
  • logo elevatori sito
  • logo prontopro

Prima di andartene...

Perché non rimanere in contatto?

Clicca sul pulsante "Mi piace" qui sotto per rimanere aggiornato su tutti i nuovi contenuti e ricevere notifica degli articoli interessanti che condivido giornalmente sulla Pagina Facebook dedicata al blog.

Puoi anche iscriverti alla newsletter e al nuovo canale YouTube di blog.dangerx82 così da rimanere sempre aggiornato sui nuovi contenuti...

x

Per essere più facile ed intuitivo, il blog fa uso dei cookie, piccole porzioni di dati che consentono di capire come gli utenti navighino e ne visualizzino le pagine. I cookie non registrano alcuna informazione personale sull'utente ed eventuali dati identificabili non verranno memorizzati. Ti invitiamo a prendere visione della nostra Informativa sulla Privacy (aggiornata il 25/05/2020). Oppure visiona la nostra Cookie Policy (aggiornata il 17/10/2019):