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