Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    stampare messaggi e risposte

    Salve a tutti,

    devo stampare i messaggi e le risposte di una sorta di forum che ho costruito.
    I messaggi originali (diciamo gli argomenti) sono contenuti in una prima tabella messaggi.
    Le risposte a quell'argomento sono legate attraverso il suo ID e vengono immagazzinate nella tabella risposte.

    con questo codice riesco a stampare messaggi e risposte, ma il messaggio originale viene replicato ad ogni risposta:
    Codice PHP:
    <link href="../gedd.css" rel="stylesheet" type="text/css">
    <?php
        $q_messaggi
    =mysql_query("
        SELECT *, date_format(data, 'alle %H:%i del %d/%m/%Y') as dataf, date_format(data_r, 'alle %H:%i del %d/%m/%Y') as dataf_r  
        FROM (messaggi LEFT JOIN risposte ON messaggi.ID_mex=risposte.ID_mex_r) 
        ORDER BY data DESC"
    )or die(mysql_error());
        while(
    $messaggio=mysql_fetch_array($q_messaggi)){
        echo 
    "
        <tr>
            <td class='mex_head'>:: [b]
    $messaggio[oggetto][/b]</a></td>
        </tr>
        <tr>
            <td class='mex_text'>
    $messaggio[messaggio]</td>
        </tr>
        <tr>
            <td class='mex_sub'>postato 
    $messaggio[dataf] da $messaggio[membro] - [url='risp.php?ogg=$messaggio[ID_mex]']Rispondi[/url] | [url='mail.php']Nuovo Messaggio[/url]</td>
        </tr>
        <tr>
            <td class='ris_text'>
    $messaggio[messaggio_r]</td>
        </tr>
        <tr>
            <td class='ris_sub'>postato 
    $messaggio[dataf_r] da $messaggio[membro_r]</td>
        </tr>"
    ;
        };
    ?>
    Io vorrei che il messaggio originale facesse da intestazione e venisse stampato una sola volta, e sotto di esso venissero stampate tutte le risposte in ordine cronologico.

    Cosa devo fare? A quanto pare devo usare 2 cicli ma se il primo è while il secondo come deve essere? posso annidiare un ciclo while ancora per ripescare le risposte a quel messaggio?
    Grazie.

  2. #2
    Per semplicità ti converrebbe fare 2 query:


    <?php
    $sql_messaggi = "SELECT id_mex, ....... FROM messaggi";
    $prendi_messaggi = @mysql_query($sql_messaggi, $TUA_CONNESSIONE);

    while ($riga_messaggi = @mysql_fetch_assoc($prendi_messaggi))
    {
    //Qui ti prendi i dati messaggio originale e li visualizzi
    $oggetto = stripslashes($riga_messaggi['oggetto']);

    echo "
    <tr>
    <td class='mex_head'>:: $oggetto</a></td>
    </tr>
    ............."


    $id_m = $riga_messaggi['id_mex'];

    //A questo punto prelevi tutte le risposte riguardanti il messaggio ke stai esaminando.

    $sql_risposte = "SELECT * FROM risposte WHERE id_mex_r=$id_m";
    $prendi_risposte = @mysql_query($sql_risposte, $TUA_CONNESSIONE);

    while ($riga_risposte = @mysql_fetch_assoc($prendi_risposte))
    {
    //Quindi ora prendi i dati della risposta associata al messaggio in esame e li visualizzi
    }
    }
    ?>

  3. #3
    grazie, ci stavo per arrivare..grazie della dritta!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.