Pagina 1 di 1
Aggiornare un campo del profilo a tutti
Inviato: 04/01/2011, 2:13
da Barrnet
Oggi su un forum che gestisco ho creato un campo personalizzato.
Il problema è che a chi non ha visitato il proprio pannello di controllo non appare, manco con la voce predefinita.
C'è un modo per aggiornare in un colpo solo tutti i profilo mostrando il campo con la voce "standard" a chi non l'ha ancora compilato?
Penso che via query sia possibile, ma non ho la più pallida idea di come farla

Re: Aggiornare un campo del profilo a tutti
Inviato: 04/01/2011, 7:01
da Micogian
In linea di massima per modificare un campo si fa così:
Ma questo inserisce il valore "xxx" a tutti i records.
Se vuoi modificare solo i campi che risultano vuoti potresti fare così:
Fai una prova: copia la tabella e prova sulla copia, se tutto è a posto lo fai sulla tabella principale.
Quando si fanno modifiche al database, senza bisogno di fare un backup completo è sufficiente copiare le tabelle interessate direttamente nel database, così le hai subito a disposizione.
Re: Aggiornare un campo del profilo a tutti
Inviato: 04/01/2011, 10:31
da Carlo
Il problema è che il valore del campo personalizzato di un dato utente non viene aggiunto in una colonna della tabella degli utenti, ma c'è una tabella apposita, dove per ogni utente e per ogni campo personalizzato viene creato un nuovo record.
Re: Aggiornare un campo del profilo a tutti
Inviato: 04/01/2011, 10:55
da Micogian
Non ho detto che va fatto nella tabella "users", la tabella dei dati personalizzati è "phpbb_profile_fields_data" e il nome del campo bisogna vederlo nella tabella stessa, visto che è personalizzato.
Re: Aggiornare un campo del profilo a tutti
Inviato: 05/01/2011, 0:37
da Barrnet
Il campo "xxx" è il nome che ho dato quando ho creato il campo? (più precisamente: Identificazione campo)
Re: Aggiornare un campo del profilo a tutti
Inviato: 05/01/2011, 7:28
da Micogian
Nella tabella xxxx_profile_fields ci metti i nomi dei campi, ad esempio "cognome", nella tabella xxxx_profile_fields_data finiscono i valori e i campi prendono il nome inserito nella tabella profile_fields con il prefisso "pf", in pratica il campo "cognome" diventa "pf_cognome".
Ma questo lo vedi benissimo aprendo la tabella xxxx_profile_fields_data.
Re: Aggiornare un campo del profilo a tutti
Inviato: 05/01/2011, 8:42
da Barrnet
Quindi se lancio la query:
tutti i campi "esempio" non compilati vengono mostrati?
O tutti gli account si ritroveranno il campo "esempio" vuoto?
Re: Aggiornare un campo del profilo a tutti
Inviato: 05/01/2011, 11:06
da Micogian
Barrnet ha scritto:Quindi se lancio la query:
tutti i campi "esempio" non compilati vengono mostrati?
O tutti gli account si ritroveranno il campo "esempio" vuoto?
No, nel campo "campo" (ammesso che esista o comunque sta per un nome di campo) viene inserita la stringa "esempio" qualora (WHERE) il campo sia vuoto.
Ad esempio, se io volessi cambiare lo style (mettendo lo style 10) utilizzato dall'utente 99 potrei fare
Codice: Seleziona tutto
UPDATE phpbb_users SET user_style='10' WHERE user_id='99'
Se lo voglio cambiare a tutti escludo il WHERE:
Se voglio cambiare lo styile a tutti quelli che hanno lo style 5
Codice: Seleziona tutto
UPDATE phpbb_users SET user_style='10' WHERE user_style='5'
Con lo stesso principio posso inserire un valore a tutti i rercords che hanno unn determinato campo vuoto
Re: Aggiornare un campo del profilo a tutti
Inviato: 05/01/2011, 11:18
da Barrnet
Ok, tutto chiaro
