使用PHP对我的sql查询结果进行分页时遇到了一些麻烦。我尝试过几种不同的解决方案,但到目前为止还没有成功。有人能帮我吗?下面是我用来显示所有结果的当前代码,但是我希望它们分成50页。
<?
//query
$data = mysql_query("SELECT * FROM names");
//counts_result
$anymatches=mysql_num_rows($data);
if ($anymatches == 0)
{
echo "ERROR";
}
else {
echo "<div class='search_result_output'>
SEARCH SUCCESS
</div><hr>";
}
?>
<?
//display results
while($result = mysql_fetch_array( $data ))
{
echo "<div class='panel panel-default'>";
echo "<div class='panel-heading'>";
echo "<h4 class='panel-title'>";
echo $result['name'];
echo "</h4>";
echo "</div>";
echo "<div class='game_actions' style='float:right; margin-top:-40px; margin-right:10px;'>";
echo "<a data-toggle='collapse' class='btn btn-custom' data-parent='#accordion' href='#".$result['id']."' title='More Info on ".$result['name']."'><i class='fa fa-plus'></i></a>";
echo "</div>";
echo "<div id='".$result['id']."' class='panel-collapse collapse'>";
echo "<div class='panel-body'>";
echo $result['name'];;
echo "</div>";
echo "</div>";
echo "</div>";
}
}
?>
答案 0 :(得分:1)
你有这个:
$data = mysql_query("SELECT * FROM names");
改为使用:
$page = (isset($_GET["page"])) ? $_GET["page"] : "0";
$data = mysql_query("SELECT * FROM names limit ".$page.", 50");
相应地显示您的链接;将页面值添加到它们。您的分页取决于名为“page”的get参数。
编辑:
例如,如果要显示指向第5页的链接,则:
echo '<a href="yoururl?page='.(4 * 50).'">5</a>';
4 * 50 =页面索引*页面大小。页面索引是4,因为在第一页上没有偏移量。很难再添加任何帮助,因为我不知道你需要什么样的分页。但是,此编辑应该可以帮助您开始解决问题。
答案 1 :(得分:0)
尝试这样的查询,然后只需更改参数即(3和8)
选择*来自
(从Person.dbo.pers中选择Id,Name,ROW_NUMBER()over(order by Id)作为RowNum
)tbl
其中tbl.RowNum介于3和8之间
它得到3到8行