phpBB Italia chiude!
phpBB Italia ringrazia tutti gli utenti che hanno dato fiducia al nostro progetto per ben 9 anni, e che, grazie al grande lavoro fatto da tutto lo Staff (rigorosamente a titolo gratuito), hanno portato il portale a diventare il principale punto di riferimento italiano alla piattaforma phpBB.

Purtroppo, causa motivi personali, non ho più modo di gestirlo e portarlo avanti. Il forum viene ora posto in uno stato di sola lettura, nonché un archivio storico per permettere a chiunque di fruire di tutte le discussioni trattate.

Il nuovo portale di assistenza per l'Italia di phpBB diventa phpBB-Store.it, cui ringrazio per aver deciso di portare avanti questo grande progetto.

Grazie ancora,
Carlo - Amministratore di phpBB Italia

Non letto/ letto

Area di discussione relativa al linguaggio di programmazione web più conosciuto. Il forum è dedicato anche a MySQL, la piattaforma di database più utilizzata con il PHP.
BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Non letto/ letto

Messaggio da BMercer » 11/05/2010, 18:18

Salve a tutti,
Di recente ho deciso di inoltrarmi nella creazione di un cms forum personale e mi sono sorte alcune domande del tipo "how-to", che ho una dopo l'altra risolto tranne questa:

Come faccio a gestire i topic letti o non letti per ogni utente?
Mi spiego, se io ho ,mettiamo, 10 utenti, e 1 topic: come faccio a mostrare ad ongi utente un'icona diversa a seconda se quest'ultimo ha letto o non letto l'ultima risposta?

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Non letto/ letto

Messaggio da Carlo » 11/05/2010, 19:24

Ciao, buona idea la tua. Una cosa del genere la stò sviluppando io, che sarà raggiungibile al seguente indirizzo: www.bokehcms.tk

Ritornando alla tua richiesta, invece, dai un occhiata al sistema adottato da phpBB. Se non sbaglio c'è una tabella chiamata phpbb_topic_watch dove viene creato ogni volta che un utente vede un topic un nuovo record con due colonne "topic_id" e "user_id", e quindi da qui capisce che l'utente ha visto il topic in questione.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Non letto/ letto

Messaggio da BMercer » 11/05/2010, 20:36

Grazie mille per il link, aspetto con ansia l'uscita del tuo cms :D
Anche perchè mi serve ispirazione.
Una volta completato il mio (che a differenza del tuo non sarà open source, almeno non per il momento) lo hosterò e te lo farò vedere se vuoi.

Comunque grazie per la risposta, anche se temevo proprio che la soluzione fosse una cosa del genere.
Se non sbaglio però quella tabella occuperà un sacco di spazio...

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Non letto/ letto

Messaggio da Carlo » 11/05/2010, 21:09

Beh, puoi fare qualche proporzioni tra topic/utenti vendendo anche il peso di tale tabella sul tuo forum.
Sul mio forum non supera i 300 KB se non sbaglio.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Non letto/ letto

Messaggio da BMercer » 11/05/2010, 21:14

Non ho mai approfondito questo argomento, ma non dovrebbe essere proprio tanto leggero fare una " select * " in quella tabella, considerando che ogni visita viene registrata.
Immaginati un forum di 2 anni con 1.000 utenti e abbastanza attivo ... provi ad estrarre e BOOM.
:)
Comunque grazie, farò così.

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Non letto/ letto

Messaggio da Carlo » 11/05/2010, 21:22

phpBB.com come fa?!? Il sistema utilizzato sarà veloce è leggero. Ma poi non estrae tutti i records, ma solo quegli relativi ad un utente o ad un preciso topic.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

BMercer
Utente
Utente
Messaggi: 205
Iscritto il: 02/09/2009, 12:28
Versione: 3.0.6
Server: UNIX/Linux

Re: Non letto/ letto

Messaggio da BMercer » 11/05/2010, 21:31

carlino1994 ha scritto:phpBB.com come fa?!? Il sistema utilizzato sarà veloce è leggero. Ma poi non estrae tutti i records, ma solo quegli relativi ad un utente o ad un preciso topic.
Ma pensavo che potrebbe essere un idea dare un ottimizzata al tutto, magari sovrascivendo dei dati simili.
Mettiamo per esempio che c'è un topic A, B e C e tre utenti Paperino, pluto e pippo.
I dati potrebbero essere salvati così:

ID Utente | Topic

1 Paperino | A
2 Pluto | A
3 Pippo | B
4 Pluto | B
5 Pippo | B
6 Pluto | B
7 Paperino | B
8 Pluto | C

Al momento della scrittura della riga 6, la numero 4 non serve più a nulla e quindi potrebbe essere eliminata.
Per esempio nel momento in cui Pluto guarda di nuovo il topic B:
- Estraiamo i dati dalla tabella
- Controlliamo se nella colonna Utente e nella colonna Topic vi sono contemporanemente Pluto e B e se ci sono elimiamo quella riga
- Inseriamo la nuova riga

Avatar utente
Carlo
Amministratore
Amministratore
Messaggi: 9957
Iscritto il: 19/04/2009, 10:24
Sesso: Maschio
Versione: 3.2.0
Server: UNIX/Linux
PHP: 7.1.0
Database: MySQL(i) 10.0.27-MariaDB-cll-lve
Località: Puglia
Contatta:

Re: Non letto/ letto

Messaggio da Carlo » 11/05/2010, 21:36

Di sicuro il codice di phpBB è ottimizzato e pulito. Ripeto, guarda il codice di phpBB.
MODs | Stili | Traduzioni MOD
Ogni MP contenente una richiesta di supporto verrà ignorato.

Rispondi

Torna a “PHP - MySQL”

Chi c’è in linea

Visitano il forum: Nessuno e 43 ospiti