SQL结果分页

时间:2013-12-27 03:31:10

标签: sql pagination

使用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>";
 }
 }

 ?>

2 个答案:

答案 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行