Php 使用i++循环并分页
我有这个:Php 使用i++循环并分页,php,loops,while-loop,pagination,Php,Loops,While Loop,Pagination,我有这个: $page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]); $limit = 50; $startpoint = ($page * $limit) - $limit; //to make pagination $statement = "`users`"; <?php $sql = mysql_query("SELECT * FROM users ORDER BY respec
$page = (int) (!isset($_GET["page"]) ? 1 : $_GET["page"]);
$limit = 50;
$startpoint = ($page * $limit) - $limit;
//to make pagination
$statement = "`users`";
<?php
$sql = mysql_query("SELECT * FROM users ORDER BY respect DESC LIMIT {$startpoint} , {$limit}");
$i = 1;
while ($row = mysql_fetch_assoc($sql)) {
echo '
<tr>
<td style="text-align:center;">
';
if ($i == '1') {
echo '<i class="fa fa-trophy"></i> ';
}
if ($i == '2') {
echo '<i class="fa fa-trophy"></i> ';
}
if ($i == '3') {
echo '<i class="fa fa-trophy"></i> ';
}
echo '
' . $i++ . '
和分页功能:
function pagination($query, $per_page = 10,$page = 1, $url = '?')
{
$query = "SELECT COUNT(*) as `num` FROM {$query}";
$row = mysql_fetch_array(mysql_query($query));
$total = $row['num'];
$adjacents = "2";
$page = ($page == 0 ? 1 : $page);
$start = ($page - 1) * $per_page;
$prev = $page - 1;
$next = $page + 1;
$lastpage = ceil($total/$per_page);
$lpm1 = $lastpage - 1;
$pagination = "";
if($lastpage > 1)
{
$pagination .= "<ul class='pagination'>";
$pagination .= "<li class='details'>Page $page of $lastpage</li>";
if ($lastpage < 7 + ($adjacents * 2))
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
}
elseif($lastpage > 5 + ($adjacents * 2))
{
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>...</li>";
$pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";
}
elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= "<li><a href='{$url}page=1'>1</a></li>";
$pagination.= "<li><a href='{$url}page=2'>2</a></li>";
$pagination.= "<li class='dot'>...</li>";
for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
$pagination.= "<li class='dot'>..</li>";
$pagination.= "<li><a href='{$url}page=$lpm1'>$lpm1</a></li>";
$pagination.= "<li><a href='{$url}page=$lastpage'>$lastpage</a></li>";
}
else
{
$pagination.= "<li><a href='{$url}page=1'>1</a></li>";
$pagination.= "<li><a href='{$url}page=2'>2</a></li>";
$pagination.= "<li class='dot'>..</li>";
for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= "<li><a class='current'>$counter</a></li>";
else
$pagination.= "<li><a href='{$url}page=$counter'>$counter</a></li>";
}
}
}
if ($page < $counter - 1){
$pagination.= "<li><a href='{$url}page=$next'>Next</a></li>";
$pagination.= "<li><a href='{$url}page=$lastpage'>Last</a></li>";
}else{
$pagination.= "<li><a class='current'>Next</a></li>";
$pagination.= "<li><a class='current'>Last</a></li>";
}
$pagination.= "</ul>\n";
}
return $pagination;
}
每一页的限制是50,第一页从1到50看起来不错,但是我移到第2页时,从1到50是一样的,为什么不从51到101在第3页从102到152呢
SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15
根据您的上下文,您必须根据页面更改{$startpoint}值
SELECT * FROM users ORDER BY respect DESC LIMIT {$startpoint} , {$limit}")
比如说,
//determine page number from $_GET
$page = 1;
if(!empty($_GET['page']))
{
$page = filter_input(INPUT_GET, 'page', FILTER_VALIDATE_INT);
if(false === $page) {
$page = 1;
}
}
// set the number of items to display per page
$items_per_page = 50;
// build query
$offset = ($page - 1) * $items_per_page;
$sql = "SELECT * FROM users LIMIT " . $offset . "," . $items_per_page;
如果您的限制是50,那么您的$startpoint应该是$currentpage-1*$limit
因此,对于第1页,值将是0,第2页50等等,我已经开始工作了,现在在第1页显示我从1到50,在第2页显示我从51到101,我将$i的值从1更改为:$start=$page-1*$limit+1$i=1*$start;像这样好吗?我不会有问题吗?