← Desenvolvimento

Alterar conteudo de campos de uma DB SQL

Lida 5855 vezes

Offline

nandotx 
Membro
Mensagens 1012 Gostos 1
Feedback +9

Troféus totais: 28
Trófeus: (Ver todos)
Apple User Mobile User Windows User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

Nos posts de um blog WordPress tenho a palavra "Download" e agora precisava trocar isso pelo código de uma imagem, mas estar a editar cerca de 500 posts é uma maratona.

Acho que dá para ir ao phpMyAdmin e com um comando alterar tudo o que diga "Download" num campo de uma determinada tabela, mas não sei como se faz.

Se alguém souber e quiser partilhar, agradeço.
Offline

marsupillami 
Equipa
Mensagens 850 Gostos 4
Feedback +1

Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 500 Posts

A forma mais simples será fazeres um dump SQL da base de dados, renomeias a tabela (tabela_backup), corres um "find and replace" no ficheiro .sql e voltas a fazer upload do ficheiro.

Poderás, como alternativa, utilizar uma linguagem de programação tipo PHP para fazeres um simples "SELECT campo FROM tabela" Percorres todas as linhas através de um ciclo "while" ou "for". Dentro do ciclo corres um "str_replace()" - http://pt.php.net/manual/en/function.str-replace.php e de seguida fazes um UPDATE tabela SET campo = $var['texto'] WHERE id = $var['id'] (ainda dentro do ciclo).

(isto tudo muito por alto).
Offline

nandotx 
Membro
Mensagens 1012 Gostos 1
Feedback +9

Troféus totais: 28
Trófeus: (Ver todos)
Apple User Mobile User Windows User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

:superlol:

Nem me lembrei desse pormenor que referis-te na primeira opção.


:obrigado: :obrigado:
Offline

batmitra 
Membro
Mensagens 160 Gostos 0
Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

A forma mais simples, se tiveres acesso à bd através por exemplo do phpmyadmin, é fazeres uma query do tipo

Update [nome da tabela]
Set nome do campo=valor que queres pôr

e corres essa query, mas atenção que ela altera os valores em toda a tabela, os campos que indicares
Se quiseres especificar algum registo em particular usa o WHERE

Update [nome da tabela]
Set nome do campo=valor que queres pôr
Where nome do campo=critério de procura
Offline

STronic 
Elite
Mensagens 546 Gostos 8
Feedback +5

Troféus totais: 30
Trófeus: (Ver todos)
Mobile User Search Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

A forma mais simples, se tiveres acesso à bd através por exemplo do phpmyadmin, é fazeres uma query do tipo

Update [nome da tabela]
Set nome do campo=valor que queres pôr

e corres essa query, mas atenção que ela altera os valores em toda a tabela, os campos que indicares
Se quiseres especificar algum registo em particular usa o WHERE

Update [nome da tabela]
Set nome do campo=valor que queres pôr
Where nome do campo=critério de procura

isso nao funciona porque ele precisa de alterar uma palavra num registo, e nao todo o registo ;)
Offline

batmitra 
Membro
Mensagens 160 Gostos 0
Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts


Nos posts de um blog WordPress tenho a palavra "Download" e agora precisava trocar isso pelo código de uma imagem, mas estar a editar cerca de 500 posts é uma maratona.

Acho que dá para ir ao phpMyAdmin e com um comando alterar tudo o que diga "Download" num campo de uma determinada tabela, mas não sei como se faz.

Se alguém souber e quiser partilhar, agradeço.

isso nao funciona porque ele precisa de alterar uma palavra num registo, e nao todo o registo ;)

ok
Vamos por partes:

1 Registo é cada linha de uma tabela ok? imaginem o Excel e cada linha é um registo
1 coluna é cada campo da tabela

Se entenderes isto verás que funciona, para além disso ele quer alterar cerca de 500 registos e apenas 1 coluna em cada um desses registos, pelo que percebi, portanto, funciona e essa é a maneira mais simples de manter a coerência da BD, existem outras mas são mais complicadas.

Se quiseres podes sempre procurar no Google  :-P
Offline

STronic 
Elite
Mensagens 546 Gostos 8
Feedback +5

Troféus totais: 30
Trófeus: (Ver todos)
Mobile User Search Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

ok
Vamos por partes:

1 Registo é cada linha de uma tabela ok? imaginem o Excel e cada linha é um registo
1 coluna é cada campo da tabela

Se entenderes isto verás que funciona, para além disso ele quer alterar cerca de 500 registos e apenas 1 coluna em cada um desses registos, pelo que percebi, portanto, funciona e essa é a maneira mais simples de manter a coerência da BD, existem outras mas são mais complicadas.

Se quiseres podes sempre procurar no Google  :-P


pelo que percebi... ele tem...

'bla bla bla bla download bla bla bla'

e quer

'bla bla bla bla <img src="download.jpg"> bla bla bla'

se fizer um UPDATE SET, o campo/linha/registo vai ficar apenas '<img src="download.jpg">' (sem o bla bla bla), correcto ?

se estiver errado corrijam-me, vou precisar disso logo a noite, por isso tambem me vai dar jeito...
Offline

batmitra 
Membro
Mensagens 160 Gostos 0
Troféus totais: 22
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Correcto

Eu e que percebi mal, as minhas desculpas.
Neste caso , se usam o wordpress, sugiro que leiam isto, que faz uso do comando REPLACE

http://www.barrywise.com/2009/02/global-find-and-replace-in-wordpress-using-mysql/
Offline

STronic 
Elite
Mensagens 546 Gostos 8
Feedback +5

Troféus totais: 30
Trófeus: (Ver todos)
Mobile User Search Apple User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

Correcto

Eu e que percebi mal, as minhas desculpas.
Neste caso , se usam o wordpress, sugiro que leiam isto, que faz uso do comando REPLACE

http://www.barrywise.com/2009/02/global-find-and-replace-in-wordpress-using-mysql/


para o meu caso não é wordpress... já tinha explorado o comando REPLACE mas ainda não tinha chegado a uma conclusão...
por aí ja deu uma ajuda ;) thanks!
Offline

marsupillami 
Equipa
Mensagens 850 Gostos 4
Feedback +1

Troféus totais: 28
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3 Level 2 Level 1 500 Posts

Desconhecia esse replace, mas serve também perfeitamente para o que pretendes e será provavelmente mais simples.
Offline

nandotx 
Membro
Mensagens 1012 Gostos 1
Feedback +9

Troféus totais: 28
Trófeus: (Ver todos)
Apple User Mobile User Windows User Super Combination Combination Topic Starter Poll Voter Level 5 Level 4 Level 3

Obrigado a todos pelas dicas, fiz como o marsu disse. Simples, nem me tinha lembrado. ;)