当用户点击“显示更多”按钮时显示更多帖子

时间:2012-04-09 23:47:40

标签: php mysql function

当我的网站上的用户访问他们的个人资料页面时,会遇到他们所做的帖子列表。我目前默认显示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
}
?>

1 个答案:

答案 0 :(得分: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个帖子。