1

私のサイトのユーザーが自分のプロフィールページにアクセスすると、自分が作成した投稿のリストが表示されます。現在、デフォルトで20件の投稿を表示していますが、古い投稿を表示する方法がありません。追加/古い投稿をページにロードする[投稿をさらに表示]ボタンを追加したいと思います。ユーザーが[もっと見る]ボタンをクリックした後、さらに多くの投稿を表示するにはどうすればよいですか?

これが私のショー投稿機能です

function show_posts1($userid){
$posts = array();
$sql = "SELECT p.body, p.stamp, p.id,u.username, u.imagelocation 
    FROM posts p 
    INNER JOIN users u 
    ON p.user_id=u.id 
    WHERE p.user_id='$userid' 
    ORDER BY p.stamp DESC";
$result = mysql_query($sql);
while($data = mysql_fetch_object($result)){
    $posts[] = array(   'stamp' => $data->stamp, 
                        'userid' => $userid, 
                        'body' => $data->body,
                        'username' => $data->username,
                        'imagelocation'=>$data->imagelocation,
                        'id'=>$data->id
                );
}
return $posts;
}

これが私がページに投稿を表示する方法です

<?php
$posts = show_posts1($_SESSION['user_id']);
if (count($posts)){
?>
    <table>
<?php
        foreach ($posts as $key => $list){
            echo "<tr>";
            echo "<td>".$list['body']."
                 </td>";
            echo "</tr>";
        }
?>
    </table>
<?php
}else{
?>
    <p><b>You haven't posted anything yet!</b></p>
<?php
}
?>
4

1 に答える 1

1

結果をページ分割するには、クエリは次のようになります。

$sql = "SELECT p.body, p.stamp, p.id,u.username, u.imagelocation 
    FROM posts p 
    INNER JOIN users u 
    ON p.user_id=u.id 
    WHERE p.user_id='$userid' 
    ORDER BY p.stamp DESC
    LIMIT <offset>,<max_rows>";

現在のオフセットをJavascriptに保存してから、AJAXを使用して呼び出しshow_posts1 ($userid[, $offset])、クエリを再度実行して、次の20件の投稿を取得します。

于 2012-04-10T00:02:24.627 に答える