• User Attivo

    messaggi forum sul sito

    Ciao a tutti, ho uno script che mi preleva i nuovi 100 messaggi dal forum, per linkarli dalla home e da altre pagine.

    ora, sicccome col php sono un pippa 🙂 ... volevo sapere secondo voi come posso fare per fare altre pagine che mi prelevino le discussioni da 200 a 300, da 300 a 400 e così via..cioè cosa modificare nello script, se possibile:

    <?php
    $topicnumber = 100;
    $urlPath = "http://miosito.com/forum";
    $urlImg = "forum/templates/subSilver/images/folder_announce_new.gif";
    $phpbb_root_path = './forum/';

    define('IN_PHPBB', true); 
    

    include($phpbb_root_path . 'extension.inc');
    include($phpbb_root_path . 'common.'.$phpEx);

    $table_topics = $table_prefix. "topics";
    $table_forums = $table_prefix. "forums";
    $table_posts = $table_prefix. "posts";
    $table_users = $table_prefix. "users";

    $query = "SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username
    FROM $table_topics t, $table_forums f, $table_posts p, $table_users u
    WHERE t.topic_id = p.topic_id AND
    f.forum_id = t.forum_id AND
    t.topic_status <> 2 AND
    p.post_id = t.topic_last_post_id AND
    p.poster_id = u.user_id
    ORDER BY p.post_id DESC LIMIT $topicnumber";
    $result = mysql_query($query) or die("Query failed");

    print "<table cellpadding='0' cellSpacing='0' width='95%' align='center'>";
    while ($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
    echo "<tr valign='top'><td><a href="$urlPath/viewtopic.php?topic=$row[topic_id]&forum=$row[forum_id]"><img src="$urlImg" border="0"></a></td><td><font face="Verdana, Arial, Helvetica, sans-serif"><font color="#FFCC00"><b><a href="$urlPath/viewtopic.php?topic=$row[topic_id]">" .
    $row["topic_title"] .
    "</a></td></font></b><td><font face="Verdana, Arial, Helvetica, sans-serif"><font color="#000000"> by: <a href="$urlPath/profile.php?mode=viewprofile&u=$row[user_id]">" .
    $row["username"] .
    "</td><td><font face="Verdana, Arial, Helvetica, sans-serif"><font color="#000000">" .
    date('F j, Y, g:i a', $row["post_time"]) .
    "</td></tr></font>";
    }
    print "</table>";

    mysql_free_result($result);
    ?>

    cambiando questo parametro: $topicnumber = 100;

    vario il numero di topic da prelevare (fin qui ci sono arrivato ehehehehe) ... ma per fare come vi spiegavo prima ed omettere i 100 topic precedenti???

    grazie a chi mi aiuterà 🙂


  • User Attivo

    Se dopo:
    $topicnumber = 100;
    aggiungi:
    $topicstart = 0;

    E modifichi:

    ORDER BY p.post_id DESC LIMIT $topicnumber";

    Così:

    ORDER BY p.post_id DESC LIMIT $topicstart,$topicnumber";

    Ottieni che in base a come imposti le due variabili iniziali ti fa vedere la "fetta" di messaggi che ti interessa.
    La paginazione la lascio fare a te!


  • User Attivo

    grazie mille, provo subito


  • User Attivo

    perfetto funziona... grazie ancora!!!