Newsgroup: it.comp.www.php
Titolo: Cerca e sostituisci

Dove sbaglio ?
vorrei cercare nella tabella "indirizzo" tutte le parole "Piazza" e
sostituirle con "P.zza"
Ho letto che partendo da questo esempio posso farlo:
$aaa ="Piazza Garibaldi";
echo str_replace('Piazza', 'P.zza', $aaa)";
risultato:
P.zza Garibaldi
dovrei fare una cosa così, so che è sbagliata, ma rende l'idea
$query = "SELECT FROM `anagrafica` WHERE indirizzo LIKE '%Piazza%'
SOSTITUISCILO_CON '%P.zza%'";
$query_results = mysql_query($query) or die("Errore");
echo "Funzione eseguita2<br>";
1000 grazie per qualche suggerimento
Ercolla

erc...@gmail.com
 ha scritto:

Non puoi fare un "UPDATE anagrafica SET indirizzo = 'P.zza' WHERE 
indirizzo LIKE '%Piazza%'".
Non controllato... forse c'è qualche errore di sintassi

 Non controllato... forse c'è qualche errore di sintassi
mmmmmmmhhh.. spero che abbia un backup del db..
-- 
www.iuz-lab.info
 - 
www.php-faq.org

 mmmmmmmhhh.. spero che abbia un backup del db..
Questo è un buon consiglio.... :D

 Non controllato... forse c'è qualche errore di sintassi
Ah no cmq nel tuo caso non va bene perchè questo ti sostituisce "P.zza" 
a tutto il campo che invece è del tipo "Piazza pippo baudo".
A sto punto ti conviene fare un update per ogni risultato della query.

 A sto punto ti conviene fare un update per ogni risultato della query.
Più che gli conviene, mi sa che è l'unica soluzione...
-- 
Jax

 
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_replace
Non l'ho mai usata (trovata con google) ma penso che una cosa del genere 
dovrebbe funzionare:
UPDATE anagrafica SET indirizzo = REPLACE(indirizzo, 'Piazza', 'P.zza')

> UPDATE anagrafica SET indirizzo = REPLACE(indirizzo, 'Piazza', 'P.zza')
con MySql 5 funziona. 

 UPDATE anagrafica SET indirizzo = REPLACE(indirizzo, 'Piazza', 'P.zza')
Ah però! Se mysql continua così non ci sarà più bisogno del php :))
-- 
Jax

Ciao.
Hai già provato a usare la funzione Replace (ammesso che nel DB che usi 
esista)?
update [nome_tabella] set [nome_campo] = 
replace([nome_campo],'[stringa_da_cercare]','[stringa_da_inserire]')
-- 
Ciao.
Roberto Rossi
Web    : 
http://www.robertorossi.org

 Ah però! Se mysql continua così non ci sarà più bisogno del php :))
Spero non sia così nuova: Access ha la funzione Replace di SQL almeno dal 
95...
Lo stesso SQLServer...
Ciao 

Fabio wrote:

saranno server simili agli occhi di molti.. ma per me sono molto distanti in
quanto a prestazioni e qualita'.. se voglio un buon DBMS.. scelgo MySQL..
-- 
www.iuz-lab.info
 - 
www.php-faq.org

 Lo stesso SQLServer...
Che figura di melma... uso l'sql del DB2/400 da 7 anni e mi sono detto 
"va beh, su access c'è, ma su un db serio come questo non l'ho mai 
sentita, non ci sarà..." e invece c'è -_____-
essere sicuri prima di parlare, essere sicuri prima di parlare, scrib 
scrib.....
Buono a sapersi comunque, è una funzione utilissima...
-- 
Jax

 UPDATE anagrafica SET indirizzo = REPLACE(indirizzo, 'Piazza', 'P.zza')
perfetto funziona grazie!
Avrei una variante piuttosto simile da usare con un URL per esempio:
cerca qualsiasi URL che trovi e sostituiscilo con una parola.
Dove posso intervenire ?

 quanto a prestazioni e qualita'.. se voglio un buon DBMS.. scelgo MySQL..
Parlavo della funzione replace, non della qualità (ovviamente da te 
sostenuta) di mysql rispetto al resto del mondo.
Ciao