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

Codice: Seleziona tutto

'MESSAGE'			=> $message,
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.