Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Ordinamento messaggi in un forum

    ho i messaggi di forum memorizzato in un db mysql
    Visualizzarli nell'ordine in cui sono stati scritti (come fa il forum di html.it) cioè se ho scritto una risposta dopo di un altro messaggio, il messaggio relativo a questa riposta sara visualizzato prima.

    i campi sono: (numero)num del messaggio,(rif)num della risposta al messaggio(se è 1 è il messaggio originale),e messaggio.

    Devo anche dividere i messaggi,in modo che possano essere visualizzati 20 per pagina.
    codice:
    $ris = mysql_query('SELECT * FROM messaggi WHERE(numero=1 and rif>='.($pag-20).' and rif<='.$pag.') ORDER by rif DESC',$conn) or die("Errore nella query: " . mysql_error());
    Facevo così. ma non si ordinano come voglio io.
    Per favore ditemi la query giusta.
    Grazie

  2. #2
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Uilizzi un id autoincrementante? Se sì puoi usare quello, altrimenti per data (supponendo che tu la memorizzi).
    Per quanto riguarda la paginazione utilizza LIMIT.. è più comodo.

  3. #3
    Si utilizzo anche un id auto incrementante
    Ma non capisco come possa utilizzarlo.
    Potresti specificarlo
    Grazie!

  4. #4
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    $query = mysql_query("SELECT * FROM messaggi WHERE numero=1 ORDER BY id_incrementale ASC LIMIT ".$pag.",20");

    (Imagino "numero" indichi il thread di appartenenza del messaggio).

  5. #5
    Così non va bene perchè prima controlla i messaggi che hanno numero=1 e poi li ordina.

    Io voglio che vengano ordinati considerando anche le risposte.
    cioè i messaggi che non hanno numero = 1

  6. #6
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Beh magari spiega meglio come è fatta la tabella "messaggi" e cosa vuoi che la query faccia.

  7. #7
    MESSAGGI:
    id ->numero che si incrementa a ogni messaggio
    rif-> Numero del post a cui si riferisce il messaggio
    numero ->Se è 1 allora è il primo messaggio scritto altrimenti è una risposta
    titolo->titolo messaggio
    messaggio-> Testo del messaggio

    Voglio visualizzare il titolo dei messaggi numero=1
    Questi però devono essere ordinati controllando anche le risposte ad essi associate

    per es.

    Ho un msg id=12 che ha una risposta con id=20
    E una altro msg con id=15 con risp. id=19


    Voglio che venga visualizzato prima il msg con id=12 perche ha la riposta è stata scritta dopo dellaltro messgaagio compresa risposta

    Spero di essere stato chiaro.
    Grazie

  8. #8
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Non ho capito molto del tuo algoritmo ma mi domando: il primo messaggio (che ha quindi numero =1) non è sempre e comunque quello con id più basso tra quelli che fanno riferimento ad un certo "rif"?

  9. #9
    No l'id viene incrementato ad ogni nuovo messaggio senza controllare se sia una risposta o meno

  10. #10
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    per intenderci:
    se la discussione che hai aperto in questo forum ha id=5 e numero =1
    tutte le risposte mie e tue successive avranno come rif=5 e id>5 enumero <> 1. Questa è la domanda. E' pertinente perchè secondo me te ne puoi anche disinteressare del valore di numero, se ho capito il problema.

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.