0

こんにちは私はユーザーによって追加された投稿のリストを収集し、ページをループしてしばらくの間それを表示する機能を持っています。

表示される結果の数、つまりLIMIMT 15を制限したので、ページにオーバーフローしません。しかし、私が今できるようにしたいのは、次のページに表示する他のすべての結果(ただし、ユーザーが追加できる数)を用意することです。各ページには15件の結果しか表示されていません。したがって、1ページ、2ページ、3ページなどになります。

これはどのように達成されますか?

function get_forum() {
            global $connection;
            global $profile_id;
            $query = "SELECT *
                        FROM ptb_forum
                        WHERE ptb_forum.deleted ='0'
                        ORDER BY ptb_forum.date_added DESC
                        LIMIT 0 , 16";
            $forum_set = mysql_query($query, $connection);
            confirm_query($query, $connection);
            return $forum_set;
        }

<?php
    $forum_set = get_forum();

    ?>
    <br/>
    <h3>Latest Forum Posts</h3>
    <br/> 

    <?php
    if(mysql_num_rows($forum_set) > 0) {
        while ($forum = mysql_fetch_array($forum_set)) {
            $age = days_from_date($forum['date_added']);
            ?>
            <div class="prof-content-box-forum" id="reviews">
             <div class="forum-content">
             <?php echo "{$forum['content']}"; ?>
             </div>
             <div class="message_pic">
             <?php echo "<a href=\"profile.php?id={$forum['from_user_id']}\"><img width=\"50px\" height=\"50px\"  src=\"{$prof_photo}\"></a>";?>

             </div>

             <div class="forum-text">
             <?php echo "Posted by {$forum2['display_name']}"; ?> <?php echo "".$age." days ago"; ?>
          </div>

             </div>

             <? } } ?>
4

1 に答える 1

1

get_forum();それが置かれているページを因数分解する必要があります。

    $page = $_GET['page'];
    $page or $page = 1;
    $offset = ($page * 15) - 15;
    // obviously you need to sanitize this

    "SELECT *
    FROM ptb_forum
    WHERE ptb_forum.deleted ='0'
    ORDER BY ptb_forum.date_added DESC
    LIMIT $offset , 16"

また、ユーザーがこれらのページを閲覧できるように、ページネーションを書き出す必要があります。PHP のページネーションに関する基本的な Google 検索では、このために事前に作成された多くの関数が提供されます。この例では、現在のページを表すために $_GET var "page" を使用していると想定しています。たとえば、yoursite.com/forum.php?page=2

また、mysql_ 関数を使用せずにこれを実行できる方法がたくさんあるため、ここでは例としてクエリ自体を示します。

mysql_ 関数の使用を停止する必要があります。PDOmysqliは実装が非常に簡単で、基本的にインターネット全体だけでなく、このサイト全体に多数のサポートが存在します。

于 2012-12-14T18:53:55.433 に答える