Vai al contenuto
  • 0

Query phpmyadmin per modifica contenuto post


fil17

Domanda

Ciao a tutti!

 

Volevo sapere se qualcuno era in grado di aiutarmi nella creazione di una query per phpmyadmin in modo da risolvere il problema con gli accenti sbagliati.

 

In pratica attraverso una query di tipo update volevo cercare all'interno di ogni singolo post il carattere accentato sbagliato, e sostituirlo con la lettera seguita dall'apostrofo.

 

Ad esempio trasformare una è importata in modo sbagliato in una: e' in modo da evitare problemi in futuro (e rendere il forum più leggibile :D )

 

Il problema non è tanto individuare la tabella.. ma capire come far analizzare il contenuto scritto dentro al campo specifico.

 

Ad esempio la tabella che si occupa dei post si chiama:

ipb_posts (dove al posto di ipb ci sarà il vostro prefisso)

 

Ora sappiamo che i contenuti sono salvati nel campo:

post

 

Ora come si fa a dire di cercare dentro al quel campo la lettera sbagliata e sostituirla con quella giusta?

 

Grazie

Ciao :)

Link al commento
Condividi su altri siti

21 risposte a questa domanda

Messaggi raccomandati

  • 0

ho fatto una volta sola una sostituzione di massa di un carattere

 

ho chiuso il forum, ho fatto il dump del database, ho lavorato un locale con "cerca" e "sostituisci tutto", ho ricaricato il db

 

notepad ++ permette di lavorare su file di grosse dimensioni

 

in alternativa, ma è a pagamento : Multiedit

Link al commento
Condividi su altri siti

  • 0

Ciao!

 

Grazie delle risposte.. Probabilmente farò la modifica con notepad.. però ho sempre il terrore che quando vado ad importare il file corretto non si cambino ancora gli accenti.

 

Come mai con l'apostrofo è pericoloso? Oppure sapete come vengono codificate le lettere accentate da mysql? Così in questo caso al posto di utilizzare l'apostrofo vado direttamente a sostituire con la codifica corretta.

 

Grazie

Ciao :)

Link al commento
Condividi su altri siti

  • 0

se hai qualche microsoldino da parte, io ti consiglierei di chiedere una mano a Tarabyte, in modo da non correre rischi di fare grossi pasticci

Link al commento
Condividi su altri siti

  • 0

Ciao!

 

 

Se non riesco mi rivolgerò sicuramente a lui perchè il forum è illeggibile altrimenti. Per adesso con un amico abbiamo individuato la soluzione.. dobbiamo solo capire se va bene anche per il futuro.

 

In pratica abbiamo sostituito tutti gli accenti con l'entità html ed è andato tutto bene.

 

Ora dobbiamo solo capire se esportando il database in futuro e reimportandolo viene salvato tutto correttamente.

 

Una sola cosa. Qualcuno di voi mi può dire come nel suo database vengono salvati nel gli accenti?

Hanno codifiche "strane" oppure sono scritte nella forma: à  

 

Grazie

Ciao :)

Link al commento
Condividi su altri siti

  • 0

hai ragione a chiedere

 

io ho il forum in

 

<meta charset="iso-8859-1" /> 

Nel backup c'è la specifica:

 

ENGINE=MyISAM AUTO_INCREMENT=284 DEFAULT CHARSET=latin1; 

 

La codifica caratteri specificata nelle tabelle è

 

latin1_swedish_ci

 

Il forum nella sezione setting è impostato di conseguenza

 

Document character set iso-8859-1 

 

NOTA: una cosa che non ho mai capito è il motivo per cui IPB raccomanda UTF-8 e continuano ad utilizzare sul loro forum <meta charset="iso-8859-1" />

 

Link al commento
Condividi su altri siti

  • 0

Ciao!

 

Ook allora faccio altre prove.. perchè tutte le lettere accentate che abbiamo cambiato funzionano.. tranne la: à che rimane sempre affiancata ad un punto di domanda..

 

 

Grazie

Ciao!

Modificato da fil17
Link al commento
Condividi su altri siti

  • 0

Io ho il forum dal 2002, pertanto continuo a portarmi dietro iso-8859-1

Ho studiato tempo fa la conversione ma poi ho rinunciato è un argomento ostico per me e complesso non so dove parare

Forse prima o poi me lo farò fare da qualcuno

Link al commento
Condividi su altri siti

  • 0

Non riesco a capire come mai tutte le lettere accentate funzionino tranne la à.

 

Adesso ho sostituito la à con a'

 

L'apostrofo l'ho riscritto sempre con l'entità html e funziona correttamente.. Se riesco a sistemare correttamente anche l'ultimo carattere vi farò sapere.

 

Potrebbe essere una soluzione provvisoria per chi ha questi problemi con le lettere accentate.

 

Ciaoo :)

Link al commento
Condividi su altri siti

  • 0

In oracle c'é la funzione Convert che dovrebbe fare proprio ciò che dici.

 

Non ho idea se esista anche per MySQL, ma con un pochino di Google dovresti aver veloce risposta ;)

  • Like 1
Link al commento
Condividi su altri siti

  • 0

Ciao!

 

Purtroppo dopo molte prove non sono riuscito a risolvere al 100% il problema.. vedrò di rivolgermi a qualcuno.. Sapete dove posso trovare Tarabyte? Ho fatto un ricerca negli utenti ma non l'ho mica trovato!

 

Grazie

Ciaoo :)

Link al commento
Condividi su altri siti

  • 0

Usare l'apostrofo non è rischioso, basta fare l'escape...

In ogni caso è una operazione inutile scaricare il database per modificarlo in locale, basta fare una query di sostituzione con il carattere corrotto :P

Link al commento
Condividi su altri siti

  • 0

Usare l'apostrofo non è rischioso, basta fare l'escape...

In ogni caso è una operazione inutile scaricare il database per modificarlo in locale, basta fare una query di sostituzione con il carattere corrotto :P

 

questa è la domanda, non la risposta

 

sarebbe dire: come si cambia una gomma di scorta ?

Basta cambiarla

Link al commento
Condividi su altri siti

  • 0

In che senso? ho dato il procedimento, fare una query di sostituzione. Credo che chiunque gestisca un forum abbia, quantomeno, una infarinatura di MySQL (sarebbe come guidare una macchina e non sapere come si fa benzina!). La query è, logicamente sostituendo i campi con la tabella dei post e con la colonna del contenuto, la seguente:

UPDATE tabella SET colonna = REPLACE(colonna,'é','é');UPDATE tabella SET colonna = REPLACE(colonna,'è','è');UPDATE tabella SET colonna = REPLACE(colonna,'ì','ì');UPDATE tabella SET colonna = REPLACE(colonna,'ò','ò');UPDATE tabella SET colonna = REPLACE(colonna,'ù','ù');UPDATE tabella SET colonna = REPLACE(colonna,'Ã','à');

In ogni caso bastava cercare con google "query di sostituzione" :\

Link al commento
Condividi su altri siti

  • 0

Credo che chiunque gestisca un forum abbia, quantomeno, una infarinatura

di MySQL (sarebbe come guidare una macchina e non sapere come si fa

benzina!).

 

mi spiace ma direi proprio di no.

penso che su 100 utenti che abbiamo qui, 90 non hanno mai modificato manualmente una tabella

Link al commento
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora
  • Chi sta navigando   0 utenti

    • Nessun utente registrato visualizza questa pagina.
×
×
  • Crea Nuovo...

Informazioni importanti

Abbiamo inserito dei cookies nel tuo dispositivo per aiutarti a migliorare la tua esperienza su questo sito. Puoi modificare le impostazioni dei cookie, altrimenti puoi accettarli cliccando su continua. to insert a cookie message.