<?php
$offset = isset($_GET['pid'])?intval($_GET['pid']):1;
if(!$offset) $offset = 1;
echo "the current page: $offset<br />";
$perpage = 50;
$db = NEW PDO("mysql:host=localhost; port = 3306; dbname =library", 'root', 'cai123');
$total = $db->query('SELECT COUNT(*) FROM library.messages')->fetchColumn(0);
$sql = "SELECT * FROM library.messages LIMIT ".($offset-1).", ". $perpage ;
$result = $db->query($sql);
if ($result)
{
foreach ($result->fetchAll() as $row)
{
echo "subject: ".$row[5]."<br />";
}
}
else
{
$error = $db->errorInfo();
echo "error happened..".$error[2];
exit();
}
buildIndex($offset,$perpage, $total);//1,50,3500
/
function buildLink($active,$index, $offset)
{
if($active)
{
echo "<a>$index</a>";
}
else
{
echo "<a href ='http://127.0.0.1/php/example/setPage.php?pid=". $offset."'>$index</a>";
}
}
function buildIndex($offset,$perpage, $total)
{
$separator = '|';
//buildLink($offset==1, '<<Prev', '')
for ($start = 1, $end = $perpage;
$end < $total;
$start += $perpage, $end += $perpage)
{
echo $separator;
buildLink($offset == $start,"$start-$end", $start);
}
$end = ($total > $start) ? "$total":"";
echo $separator;
buildLink($offset == $start,"$start-$end", $start);
}
?>
<?php
$offset = isset($_GET['offset'])?intval($_GET['offset']):1;
if(!$offset) $offset = 1;
echo "the current page: $offset<br />";
$perpage = 50;
$start = ($offset-1)*$perpage;
$db = NEW PDO("mysql:host=localhost; port = 3306; dbname =library", 'root', 'cai123');
$total = $db->query('SELECT COUNT(*) FROM library.messages')->fetchColumn(0);
$sql = "SELECT * FROM library.messages LIMIT $start, $perpage";
$result = $db->query($sql);
if ($result)
{
foreach ($result->fetchAll() as $row)
{
echo "subject: ".$row[5]."<br />";
}
}
else
{
$error = $db->errorInfo();
echo "error happened..".$error[2];
exit();
}
$numpage = ceil($total/$perpage);
if($total%$perpage)
$numpage++;
$cur = $offset;
if ($cur < $numpage)
{
echo "<a href ='http://127.0.0.1/php/example/setPage01.php?offset=".($cur+1)."'>Next Page</a><br />";
}
if($cur > 0)
{
echo "<a href ='http://127.0.0.1/php/example/setPage01.php?offset=".($cur-1)."'>Prev Page</a>";
}
?>
<?php
$offset = isset($_GET["offset"]) ? intval($_GET["offset"]) : 1;
if(!$offset)
$offset = 1;
echo "the current page: $offset<br />";//测试语句
$perpage = 50; //每页显示30条目信息
$offset = ($offset-1)*$perpage;
$db = NEW PDO("mysql:host=localhost; port = 3306; dbname =library", 'root', 'cai123');
$total = $db->query('SELECT COUNT(*) FROM library.messages')->fetchColumn(0); //获取信息的总数
$sql = "SELECT * FROM library.messages LIMIT $offset, $perpage";
$result = $db->query($sql);
if ($result)
{
foreach ($result->fetchAll() as $row)
{
echo "subject: ".$row[5]."<br />";
}
}
else
{
$error = $db->errorInfo();
echo "error happened..".$error[2];
exit();
}
$numpage = ceil($total/$perpage);
if($total%$perpage) $numpage++;//计算可以显示为numpage页
if ($numpage > 1)
{
for ($i = 1; $i <= $numpage; $i++)
{
if ($i == $offset) //如果是当前页
{
echo "$i";
}
else
{
//echo "<a href ='". htmlentities($_SERVER['PHP_SELF'])."?offset=$i'".">$i</a> ";
echo '<a href = "http://127.0.0.1/php/example/setPage02.php?offset='.$i.'">'.$i.'</a> ';
}
}
}
其实原理都是一样的。