Mostra notizie nelle discussioni
  • Avatar
    ☺
    Scritto da
    altg
    utente che non utiene
    il 2012-02-03 04:32:34.0 alle 2012-02-03 04:32:34.0
    Trollate totali: 11540
    Ehi! C'e` la lista dei "tuoi thread"...
    Finalmente! Geek
    Potenza del PHP...
    • Avatar
      ☺
      Scritto da
      avvelentani
      Cubicolario
      il 2012-02-03 07:21:29.0 alle 2012-02-03 07:21:29.0
      Trollate totali: 18184
      Re: Ehi! C'e` la lista dei "tuoi thread"...
      Scritto da: altg
      > Finalmente! Geek
      > Potenza del PHP...

      Purtroppo e` una query lenta, forse la tolgo.
      I think happiness is love
      - Vladimir Putin
      • Avatar
        ☺
        Scritto da
        altg
        utente che non utiene
        il 2012-02-03 07:47:34.0 alle 2012-02-03 07:47:34.0
        Trollate totali: 11540
        Re: Ehi! C'e` la lista dei "tuoi thread"...
        > > Finalmente! Geek
        > > Potenza del PHP...
        >
        > Purtroppo e` una query lenta, forse la tolgo.

        Non so come abbiate fatto qui, ma se puo` servire, su Postline io ho una lista FIFO di tutti i messaggi postati da chiunque, abbastanza lunga da durare - di solito - almeno qualche giorno, prima che il messaggio piu` vecchio venga cancellato dalla lista; filtro quella lista per nome utente per generarne una che ha i post dell'utente in questione.

        Per fare qualcosa anche per i post piu` vecchi, mantengo un log dei thread iniziati da un utente, e lo salvo nel record dell'utente.

        Per renderle veloci, Postline registra tutti gli ID che riguardano un messaggio, cioe` non solo l'ID del messaggio ma anche quello del thread e del forum di appartenenza, insieme a un estratto dell'inizio del testo, cosi` puo` leggere tutto da li`; pero` diventa un po' complicato mantenere le liste aggiornate: Postline infatti le aggiorna quando un messaggio viene cancellato, editato, o spostato in un altro thread o forum.
        • Avatar
          ☺
          Scritto da
          il 2012-02-03 08:11:25.0 alle 2012-02-03 08:11:25.0
          Trollate totali: 42885
          Re: Ehi! C'e` la lista dei "tuoi thread"...
          Scritto da: altg

          > Non so come abbiate fatto qui, ma se puo` servire, su Postline io ho una lista FIFO di tutti i messaggi postati da chiunque, abbastanza lunga da durare - di solito - almeno qualche giorno, prima che il messaggio piu` vecchio venga cancellato dalla lista; filtro quella lista per nome utente per generarne una che ha i post dell'utente in questione.

          Perche' non usare un database A bocca storta ?
          select * from messages where author = 'altg' order by id desc
          


          > Per fare qualcosa anche per i post piu` vecchi, mantengo un log dei thread iniziati da un utente, e lo salvo nel record dell'utente.

          Ogni entry della tabella messages contiene l'id (Valore unico incrementale), un parentid (Il messaggio al quale risponde) e un threadid (Thread al quale appartiene). Per avere una lista distinta dei thread ai quali hai partecipato, credo che qualcosa del genere dovrebbe bastare:

          select distinct threadid from messages where author = 'altg' order by id desc
          )
          


          > Per renderle veloci, Postline registra tutti gli ID che riguardano un messaggio, cioe` non solo l'ID del messaggio ma anche quello del thread e del forum di appartenenza, insieme a un estratto dell'inizio del testo, cosi` puo` leggere tutto da li`; pero` diventa un po' complicato mantenere le liste aggiornate: Postline infatti le aggiorna quando un messaggio viene cancellato, editato, o spostato in un altro thread o forum.

          http://it.wikipedia.org/wiki/Database

          Anzi, no, e' gia' troppo avanzato, prima di reinventare tutto da zero comincia da qui:
          http://it.wikipedia.org/wiki/Ruota
          `"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
          • Avatar
            ☺
            Scritto da
            avvelentani
            Cubicolario
            il 2012-02-03 08:45:19.0 alle 2012-02-03 08:45:19.0
            Trollate totali: 18184
            Re: Ehi! C'e` la lista dei "tuoi thread"...
            Scritto da: Giambo
            > Scritto da: altg
            >
            > > Non so come abbiate fatto qui, ma se puo` servire, su Postline io ho una lista FIFO di tutti i messaggi postati da chiunque, abbastanza lunga da durare - di solito - almeno qualche giorno, prima che il messaggio piu` vecchio venga cancellato dalla lista; filtro quella lista per nome utente per generarne una che ha i post dell'utente in questione.
            >
            > Perche' non usare un database A bocca storta ?
            >
            > select * from messages where author = 'altg' order by id desc
            > 


            A dire il vero la query e` parecchio piu` complicata (quello che fa quel link li` e` darti i thread a cui ha partecipato un utente, ordinati per data dell'ultimo messaggio aggiunto al thread).
            I think happiness is love
            - Vladimir Putin
            • Avatar
              ☺
              Scritto da
              il 2012-02-03 09:05:42.0 alle 2012-02-03 09:05:42.0
              Trollate totali: 42885
              Re: Ehi! C'e` la lista dei "tuoi thread"...
              Scritto da: avvelentani

              > A dire il vero la query e` parecchio piu` complicata

              Si, ho visto, ma io in SQL sono piuttosto una pippa A bocca storta

              > (quello che fa quel link li` e` darti i thread a cui ha partecipato un utente, ordinati per data dell'ultimo messaggio aggiunto al thread).

              Pensavo/Speravo fossero ordinati per l'ultimo messaggio dell'utente Triste ...

              `"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
              • Avatar
                ☺
                Scritto da
                avvelentani
                Cubicolario
                il 2012-02-03 09:18:13.0 alle 2012-02-03 09:18:13.0
                Trollate totali: 18184
                Re: Ehi! C'e` la lista dei "tuoi thread"...
                Scritto da: Giambo
                > Scritto da: avvelentani
                >
                > > A dire il vero la query e` parecchio piu` complicata
                >
                > Si, ho visto, ma io in SQL sono piuttosto una pippa A bocca storta
                >
                > > (quello che fa quel link li` e` darti i thread a cui ha partecipato un utente, ordinati per data dell'ultimo messaggio aggiunto al thread).
                >
                > Pensavo/Speravo fossero ordinati per l'ultimo messaggio dell'utente Triste ...

                No, l'idea era che vai li` per vedere se ci sono nuovi messaggi in thread a cui sei interessato.
                I think happiness is love
                - Vladimir Putin
                • Avatar
                  ☺
                  Scritto da
                  il 2012-02-03 09:50:32.0 alle 2012-02-03 09:50:32.0
                  Trollate totali: 229
                  Re: Ehi! C'e` la lista dei "tuoi thread"...
                  Scritto da: avvelentani
                  > Scritto da: Giambo
                  > > Scritto da: avvelentani
                  > >
                  > > > A dire il vero la query e` parecchio piu` complicata
                  > >
                  > > Si, ho visto, ma io in SQL sono piuttosto una pippa A bocca storta
                  > >
                  > > > (quello che fa quel link li` e` darti i thread a cui ha partecipato un utente, ordinati per data dell'ultimo messaggio aggiunto al thread).
                  > >
                  > > Pensavo/Speravo fossero ordinati per l'ultimo messaggio dell'utente Triste ...
                  >
                  > No, l'idea era che vai li` per vedere se ci sono nuovi messaggi in thread a cui sei interessato.

                  Puoi fare una query parziale tipo gli ultimi 10? Oppure usare la medesima che viene usata cliccando sul nickname.. Certamente la soluzione attuale a me piace molto, ma capisco che chi ha decine di migliaia di discussioni aperte, può far piegare un po' le gambe..
                  • Avatar
                    ☺
                    Scritto da
                    avvelentani
                    Cubicolario
                    il 2012-02-03 09:54:42.0 alle 2012-02-03 09:54:42.0
                    Trollate totali: 18184
                    Re: Ehi! C'e` la lista dei "tuoi thread"...
                    Scritto da: manila
                    > Scritto da: avvelentani
                    > > Scritto da: Giambo
                    > > > Scritto da: avvelentani
                    > > >
                    > > > > A dire il vero la query e` parecchio piu` complicata
                    > > >
                    > > > Si, ho visto, ma io in SQL sono piuttosto una pippa A bocca storta
                    > > >
                    > > > > (quello che fa quel link li` e` darti i thread a cui ha partecipato un utente, ordinati per data dell'ultimo messaggio aggiunto al thread).
                    > > >
                    > > > Pensavo/Speravo fossero ordinati per l'ultimo messaggio dell'utente Triste ...
                    > >
                    > > No, l'idea era che vai li` per vedere se ci sono nuovi messaggi in thread a cui sei interessato.
                    >
                    > Puoi fare una query parziale tipo gli ultimi 10? Oppure usare la medesima che viene usata cliccando sul nickname.. Certamente la soluzione attuale a me piace molto, ma capisco che chi ha decine di migliaia di discussioni aperte, può far piegare un po' le gambe..

                    E` limitata a 512 messaggi. Dopo la copincollo qui, magari si riesce ad ottimizzare.
                    I think happiness is love
                    - Vladimir Putin
                    • Avatar
                      ☺
                      Scritto da
                      il 2012-02-03 12:20:43.0 alle 2012-02-03 12:20:43.0
                      Trollate totali: 229
                      Re: Ehi! C'e` la lista dei "tuoi thread"...

                      > E` limitata a 512 messaggi. Dopo la copincollo qui, magari si riesce ad ottimizzare.

                      Volenteiri!
                      • Avatar
                        ☺
                        Scritto da
                        il 2012-02-03 12:24:52.0 alle 2012-02-03 12:24:52.0
                        Trollate totali: 42885
                        Re: Ehi! C'e` la lista dei "tuoi thread"...
                        Volevo provarci pure io, per dimostrare a avvelentani di non essere totalmente incapace, quindi te la copioincollo io:

                        SELECT last_global.threadid
                        FROM 
                        (SELECT threadid, max(id) AS mid FROM messages 
                        GROUP BY threadid ORDER BY mid DESC LIMIT 512) 
                        AS last_global, 
                        (SELECT threadid FROM messages 
                        WHERE author = 'Giambo'
                        GROUP BY threadid ORDER BY max(id) DESC LIMIT 512) 
                        AS last_author 
                        WHERE last_author.threadid = last_global.threadid 
                        ORDER BY last_global.mid
                        

                        `"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
                        • Avatar
                          ☺
                          Scritto da
                          avvelentani
                          Cubicolario
                          il 2012-02-03 15:11:35.0 alle 2012-02-03 15:11:35.0
                          Trollate totali: 18184
                          Re: Ehi! C'e` la lista dei "tuoi thread"...
                          Scritto da: Giambo
                          > Volevo provarci pure io, per dimostrare a avvelentani di non essere totalmente incapace, quindi te la copioincollo io:
                          >
                          >
                          > SELECT last_global.threadid
                          > FROM 
                          > (SELECT threadid, max(id) AS mid FROM messages 
                          > GROUP BY threadid ORDER BY mid DESC LIMIT 512) 
                          > AS last_global, 
                          > (SELECT threadid FROM messages 
                          > WHERE author = 'Giambo'
                          > GROUP BY threadid ORDER BY max(id) DESC LIMIT 512) 
                          > AS last_author 
                          > WHERE last_author.threadid = last_global.threadid 
                          > ORDER BY last_global.mid
                          > 

                          >

                          Inoltre, lo schema della tabella messaggi e`:

                          +----------+----------+------+-----+---------+----------------+
                          | Field    | Type     | Null | Key | Default | Extra          |
                          +----------+----------+------+-----+---------+----------------+
                          | id       | int(11)  | NO   | PRI | NULL    | auto_increment |
                          | text     | longtext | NO   | MUL | NULL    |                |
                          | date     | datetime | NO   |     | NULL    |                |
                          | subject  | tinytext | NO   |     | NULL    |                |
                          | threadId | int(11)  | NO   | MUL | NULL    |                |
                          | parentId | int(11)  | NO   | MUL | NULL    |                |
                          | author   | tinytext | YES  |     | NULL    |                |
                          | forum    | tinytext | YES  |     | NULL    |                |
                          +----------+----------+------+-----+---------+----------------+
                          


                          explain:

                          +----+-------------+------------+------+---------------+------+---------+------+--------+---------------------------------+
                          | id | select_type | table      | type | possible_keys | key  | key_len | ref  | rows   | Extra                           |
                          +----+-------------+------------+------+---------------+------+---------+------+--------+---------------------------------+
                          |  1 | PRIMARY     | <derived2> | ALL  | NULL          | NULL | NULL    | NULL |    512 | Using temporary; Using filesort |
                          |  1 | PRIMARY     | <derived3> | ALL  | NULL          | NULL | NULL    | NULL |    512 | Using where; Using join buffer  |
                          |  3 | DERIVED     | messages   | ALL  | NULL          | NULL | NULL    | NULL | 928694 | Using temporary; Using filesort |
                          |  2 | DERIVED     | messages   | ALL  | NULL          | NULL | NULL    | NULL | 928694 | Using temporary; Using filesort |
                          +----+-------------+------------+------+---------------+------+---------+------+--------+---------------------------------+
                          
                          I think happiness is love
                          - Vladimir Putin
<softv>

Pagina generata in 240 millisecondi

Utenti attivi: 9 nell'ultimo minuto, 22 negli ultimi cinque minuti, 47 negli ultimi 15 minuti