这个不是分页,是List + Detail的模式。首先,有一个List,这个来自于sql的 select * from $table where $condition,如果是每个用户只显示一行,则需要添加group by username。 然后在List显示的时候提供一个link或者button,点击以后传入username。 此时通过$username = addslashes($username); 然后sql是select * from $table where username='$username',来出数据。
然后在List显示的时候提供一个link或者button,点击以后传入username。 此时通过$username = addslashes($username); 然后sql是select * from $table where username='$username',来出数据。
<?php
require_once("conn.php");
global $conn;
$maxPage=5;if($conn==false)
{
echo "<script>alert('Database Connection Error!');location.href='phpinfo.php';</script>";
}
else
{
$execc="select count(*) from human ";
$resultc=mysql_query($execc);
$rsc=mysql_fetch_array($resultc);
$num=$rsc[0];
if(empty($_GET['page']))
$page=0;
else
{
$page=$_GET['page'];
if($page<0)
$page=0;
if($page>=ceil($num/$maxPage))
$page=ceil($num/$maxPage)-1;
}
echo "<a href='index1.php?page=0'>FirstPage</a> ";
echo "<a href='index1.php?page=".($page-1)."'>PrevPage</a> ";
echo "<a href='index1.php?page=".($page+1)."'>NextPage</a> ";
echo "<a href='index1.php?page=".(ceil($num/5)-1)."'>LastPage</a>";
echo "<table border=1 >";
echo "<tr>";
echo "<td>id</td>";
echo "<td>name</td>";
echo "<td>age</td>";
echo "<td>sex</td>";
echo "</tr>";
$exec="select * from human order by id limit ".($page*$maxPage).",".$maxPage;
$result=mysql_query($exec);
while($rs=mysql_fetch_object($result))
{
echo "<tr>";
echo "<td><a href='update.php?id=".$rs->id."'>".$rs->id."</a></td>";
echo "<td>".$rs->name."</td>";
echo "<td>".$rs->age."</td>";
echo "<td>".$rs->sex."</td>";
echo "</tr>";
}
echo "</table>";
}
?>
</form>
查出有多少个name然后把name当做分页的条件来查询。相同的name值的记录就在一页了。
不知道是不是你想要的。
global $page,$limit,$offset;
if($_POST['page'] && $_POST['page']!=0){
$page=$_POST['page'];
}
elseif(!isset($page)){
$page = 1;
}
if($_POST['limit']){
$limit = $_POST['limit'];
}
elseif(!$limit){
$limit = 10;
}
if($total){
$lastpg = ceil($total/$limit);
}
else{
$lastpg = 1;
}
$totalpg = $lastpg;
if($totalpg<$page){
$page=1;
}
if($_POST['page_select']) {
$page=($_POST['page_select']<=$lastpg ? $_POST['page_select'] : $lastpg);
}
else if(!isset($page_select)){
$page_select = $page;
} //$page_select = min($lastpg,$page);
$url = $_SERVER['PHP_SELF'];
$url .= "?".$parameter;
if($sort_order){
$sort_order_temp = urlencode($sort_order);
$url .= "&sort_order=".$sort_order_temp;
}
$prepg = $page-1;
$nextpg = ($page==$lastpg ? 0 : $page+1);
if($_POST['offset']){
$offset = $_POST['offset'];
}
else {
$offset = ($page-1)*$limit;
}
$first_page = $url."&page=1&limit=".$limit; //首页url
$before_page = $url."&page=".$prepg."&limit=".$limit; //前页url
$present_pag = $url."&page=".$page."&limit=".$limit; //当前页url
$next_page = $url."&page=".$nextpg."&limit=".$limit;//后页url
$last_page = $url."&page=".$lastpg."&limit=".$limit;//尾页url
$on_limit_select = $url."&limit="; //选页
$page_choose = $url; //选择显示页数
$pagenav = "<form action=$url method=post>";
$pagenav .=" <a href='$first_page'>首页</a> ";
if($prepg){
$pagenav.=" <a href='$before_page'>前页</a> ";
}
else {
$pagenav.=" 前页 ";
}
if($nextpg){
$pagenav.=" <a href='$next_page'>后页</a> ";
}
else {
$pagenav.=" 后页 ";
}
$pagenav.=" <a href='$last_page'>尾页</a> "; //下拉跳转列表,循环列出所有页码:
$pagenav.=" 每页";
$pagenav .= "<select name=limit size='1' onchange='window.location=\"$on_limit_select\"+this.value'>\n";
$page_size = array ("10","20","50");
for($i=0;$i<count($page_size);$i++) {
if(strcmp($page_size[$i],$limit)==0){
$pagenav .= "<option value='$page_size[$i]' selected>$page_size[$i]</option>";
} else {
$pagenav .= "<option value='$page_size[$i]'>$page_size[$i]</option>";
}
}
$pagenav.="</select> 第 ".$page." 页/共 ".$lastpg." 页 ";
$pagenav.=" 跳转到<input type=text name=page_select size=2 value='$page'>页";
$pagenav.="<input type=submit name='submit' value='GO' onclick='window.location=\"$page_choose\"'>
<input type=hidden name=limit value=".$limit.">
<input type=hidden name=page value=".$page.">
</form>";
return $pagenav;
}写的函数,可以直接在php代码中调用该函数进行分页显示,其中传入的参数$total是显示的纪录的总数,$parameter是获取纪录的sql语句,$sort_order是纪录的排列顺序。
例如在某个网页中使用该函数分页显示:
$extra_sql = "select extra_id,start_time,end_time,examine_by,next_examine,final_examine,extra_state from extra where (examine_by = $suser_id or next_examine = $suser_id or final_examine =$suser_id)"
." $conditionstring ";
$extra_result = db_query($extra_sql);
$extra_num = db_numrows($extra_result);//查询记录的数目
$displaypage = pageft($extra_num,$query_condition_parameter,$sort_order); //--a function for page turning (function.php).