Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170

    Ordinare query di un forum

    Buongiorno a tutti,
    sto facendo un "piccolo forum" senza prendere esempio da quelli già esistenti perchè mi serviva proprio una cosa minima ora però mi trovo un problema e non so "logicamente" come risolverlo.

    Coime questo forum, quello che sto faendo io è diviso in sottosezioni, per mostrare i thread di ogni sotto sezione e specifico che il primo post di ogni thread è separato dalle risposte, uso questa query
    codice:
    $query = mysql_query("SELECT TOPIC_ID, CHILD_ID, TOPIC_TIT, TOPIC_AUTORE, TOPIC_AUTOREID, TOPIC_TESTO, TOPIC_BLOCCO, date_format(TOPIC_DATA, '%d.%m.%Y - %T') as Data 
    FROM forum_topic     WHERE child_id = '" . $_GET[sub] . "' ORDER BY TOPIC_DATA DESC")or die('Si è verificato un problema'); ?>
    che poi ordino con il ciclo while

    codice:
    while($rs = mysql_fetch_array($query)){
    fin qui tutto ok, poi mi è venuto in mente di mostrare l'ora dell'ultima risposta o in assenza di questa l'ora del primo post e all'intenro del while ho messo un'altra query

    codice:
    $query1 = mysql_query("SELECT REPLY_ID, TOPIC_ID, REPLY_AUTORE, REPLY_AUTOREID, date_format(REPLY_DATA, '%d.%m.%Y - %T') as DataR 
    FROM forum_reply WHERE topic_id = '" . $rs['TOPIC_ID']. "' ORDER BY REPLY_DATA DESC limit 1")or die('Si è verificato un problema'); 
    
    if(mysql_num_rows($query1)==1) {  
    $rsr = mysql_fetch_array($query1); 
    echo $rsr['DataR'];  } else { echo $rs['Data'];  }
    e fino a qui ancora tutto bene anche se mi rendo conto che forse è un po' pesante ma non sapevo come e se "joinare" queste due query.

    Ora però mi sono giustamente accorta che il forum ordina i thread in base all'ID del primo post come faccio ad ordinare in base all'id o all'ora dell'ultima risposta e se questa non c'è in base all'ora dell'ora del primo post?

  2. #2
    Non ti conviene.

    Evita il reply_id, chiamali tutti ID_post , ogni post si riferisce ad un' Id_topic, in questo modo puoi dirgli di pescare tutti i post di un topic, ordinati in base al post ASC (ascendente, 1,2,3,etc), l'ultimo in base numerica è l'ultimo post inserito.

    Inoltre se ti serve, quando memorizzi il post puoi indicare che salvi sempre l'ora di immissione, in questo modo puoi fare anche il sistema che dici te. Seppur possa non essere utile come quello in base a id_post.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    Innanzitutto grazie della risposta, ma le tabella delole risposte ha già la relazione con il topic grazie al campo TOPIC_ID, l'unica cosa è che sono ordinati in base al topic e non al post, avevo provato ad ordinarli in base al post ma mi dava non ricordo che errore, però ora ci riprovo che non si sa mai

  4. #4

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2001
    Messaggi
    170
    e niente alla fine mi sono andata a vedere la struttura del forum seo-board e lì praticamente nella tabella dei topic ci sono anche i campi che riportano data e autore dell'ultimo post, mi tocca usare questa soluzione.
    Grazie comunque della risposta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.