Pagina 1 di 2
					
				Togliere parola da tabella database
				Inviato: 06/09/2012, 17:28
				da Il Freddo
				Supponiamo che ho la parola pippo nel campo post_text in tutti i 50.000 post della tabella phpbb_posts.
Che query devo fare per toglierla? 
Per la precisione sarebbe un bbcode personalizzato, ma anche togliendolo rimangono nel post [pippo] .. [/pippo]
Quindi volevo solo togliere [pippo] e [/pippo] Grazie
			 
			
					
				Re: Togliere parola da tabella database
				Inviato: 06/09/2012, 18:54
				da Barrnet
				Non puoi, i singoli bbcode sono salvati in maniera differente, per esempio [pippo:ogogj]testo[/pippo] per renderli identificabili.
Se vuoi rimuovere dei bbcode non più in uso mi pare che ci sia un tool apposito, forse nell'stk.
			 
			
					
				Re: Togliere parola da tabella database
				Inviato: 06/09/2012, 19:07
				da Il Freddo
				Barrnet ha scritto:Non puoi, i singoli bbcode sono salvati in maniera differente, per esempio [pippo:ogogj]testo[/pippo] per renderli identificabili.
Se vuoi rimuovere dei bbcode non più in uso mi pare che ci sia un tool apposito, forse nell'stk.
si, ma se tolgo il tag dell bbcode risolvo
il tag è l'HIDE, se lo tolgo ho i link visibili, ma devo togliere anche le parole [HIDE] e [/HIDE], altrimenti stanno male
 
			 
			
					
				Re: Togliere parola da tabella database
				Inviato: 06/09/2012, 20:46
				da Micogian
				Bisognerebbe controllare come viene salvato il bbcode nel database, penso che abbia ragione Barnett, cioè che ai tag del bbcode viene aggiunto il bbcode_uid che cambia ad ogni post.
Si potrebbe anche realizzare un file php che controlla qual'è il bbcode_uid ma ci potrebbe essere una soluzione più semplice, lavorare sul risultato del testo.
Il testo dei post è ricavato dalla variabile
nel file viewtopic.php
Se usiamo il comando preg_replace() possiamo togliere i bbcode dalla visualizzazione.
In pratica restano dove sono ma nel testo non compaiono  i tags 
Bisogna usare le "Espessioni regolari" (REGEXP)
Codice: Seleziona tutto
'MESSAGE'			=> preg_replace('/\[HIDE\](.+)\[\/HIDE\]/', '$1', $message),
e la variabile 'MESSAGE' verrà visualizzata senza i tag e solo con il contenuto ($1)
Ovviamente va tolto il bbcode [HIDE] altrimenti non compare nella variabile 'MESSAGE'
 
			 
			
					
				Re: Togliere parola da tabella database
				Inviato: 06/09/2012, 21:01
				da Il Freddo
				ci provo, ma ragioniamo solo che voglio togliere le parole [hide] e [/hide], senza considerarlo un bbcode
devo togliere in Tutti i post, quindi solo con una query
			 
			
					
				Re: Togliere parola da tabella database
				Inviato: 06/09/2012, 21:06
				da Micogian
				Il Freddo ha scritto:ci provo, ma ragioniamo solo che voglio togliere le parole [hide] e [/hide], senza considerarlo un bbcode
devo togliere in Tutti i post, quindi solo con una query
e infatti il preg_replace sostituisce una stringa, non un bbcode.
Non è una query, è una funzione che sostituisce le stringhe [hide] e [/hide] con "nulla".
Ma nel database la stringa rimane.
Fai questo file di prova, chiamalo prova.php o come vuoi e poi lancialo, vedrai il risultato
Codice: Seleziona tutto
<?php
    $testo_completo = "Prova di eliminazione di una stringa inserita in un testo:   [hide]pippo[/hide] ";
    $testo_pulito = preg_replace('/\[hide\](.+)\[\/hide\]/', '$1', $testo_completo);
echo "Testo originale: " . $testo_completo . "<br />";
echo "Testo pulito: " . $testo_pulito . "<br />"; 
?>
 
			 
			
					
				Re: Togliere parola da tabella database
				Inviato: 06/09/2012, 21:11
				da Il Freddo
				provato nel viewtopic il comando di prima, ma rimane comunque visibile nella segnalazione
questo nuovo non fa nulla io devo togliere [hide] e [/hide] non pippo
			 
			
					
				Re: Togliere parola da tabella database
				Inviato: 06/09/2012, 21:13
				da Micogian
				La segnalazoione non è 'MESSAGE'
			 
			
					
				Re: Togliere parola da tabella database
				Inviato: 06/09/2012, 21:17
				da Il Freddo
				Micogian ha scritto:La segnalazoione non è 'MESSAGE'
segnalazione, topic, chiamalo come vuoi, la scheda del film, uguale
 
			 
			
					
				Re: Togliere parola da tabella database
				Inviato: 06/09/2012, 21:20
				da Micogian
				Userà un'altra variabile, io non posso saperlo, devi guardarci e usare lo stesso sistema di MESSAGE
Nel post funziona ? se funziona con la variabile MESSAGE deve funzionare anche con le altre, basta sapere quali sono.