以数据库test里的user表为例:
$host = 'localhost';
$username = 'root';
$password = '';
$dbname = 'test';
// 开始获取数据库连接
$conn = mysql_connect($host, $username, $password);
if (!$conn)
{
die('未能连接数据库: ' . mysql_error());
}
// 手动更改客户端编码
mysql_query("set names utf8");
// 选择使用哪一个数据库
mysql_select_db($dbname);
// 获取总的记录数
$sql_count = "select count(*) from user";
$total_records_result = mysql_query($sql_count);
if ($total_records_result) {
$total_records = mysql_fetch_row($total_records_result);
} else {
echo "<script>alert('未查询到数据');history.back();</script>";
exit;
}
echo "总的记录数位: ".$total_records[0]."<br>";
// 获得总页数,一般来说页面大小事固定的,所以这里暂且定为一页5个数据
$page_size = 10;
$total_pages = ceil($total_records[0]/$page_size);
echo "总页数为: ".$total_pages;
// 通过GET方式获得客户端访问的页码
$current_page_number = isset($_GET['page_number'])?$_GET['page_number']:1;
//判断页码越界
if($current_page_number<1) {
$current_page_number =1;
}
if($current_page_number>$total_pages){
$current_page_number = $total_pages;
}
echo "要访问的页码为:".$current_page_number;
// 获取到了要访问的页面以及页面大小,开始分页
$begin_position = ($current_page_number-1)*$page_size;
$sql = "select * from user limit " .$begin_position . "," .$page_size;
$result = mysql_query($sql);
// 处理结果集
echo "<table border='#CCF solid 1px'>";
echo "<tr><td>序号</td><td>姓名</td><td>性别</td></tr>";
while(($row = mysql_fetch_assoc($result))){
echo "<tr>";
echo "<td>".$row['id']."</td>";
echo "<td>".$row['name']."</td>";
echo "<td>".$row['sex']."</td>";
echo "</tr>";
}
echo "</table>";
//下拉框显示页码
echo '<form name="select_form" method="get" action="">';
echo '跳转到:<select name = "page_number" onchange="javascript:select_form.submit()">';
for($i=1;$i<=$total_pages;$i++){
if ($i == $current_page_number) {
echo '<option value="'. $i .'"selected="selected">第' . $i . '页</option>';
} else {
echo '<option value="'. $i .'">第' . $i . '页</option>';
}
}
echo '</select>';
echo '</form>';
if ($current_page_number != 1) {
echo '<a href="'. $_SERVER['PHP_SELF'] .'?page_number=1">首页</a> ';
if ($current_page_number != 2) {
echo '<a href="'. $_SERVER['PHP_SELF'] .'?page_number='.($current_page_number-1).'">上一页</a> ';
}
}
if ($current_page_number != $total_pages) {
echo '<a href="'. $_SERVER['PHP_SELF'] .'?page_number='.($current_page_number+1).'">下一页</a> ';
echo '<a href="'. $_SERVER['PHP_SELF'] .'?page_number='.($total_pages).'">尾页</a> ';
}
// 释放数据连接资源
mysql_free_result($result);
mysql_close($conn);
请注意一下问题:
mysql_query()
后续有3种处理方法:
mysql_fetch_row()
:从结果集中取得一行作为数字数组;
mysql_fetch_assoc()
:从结果集中取得一行作为关联数组;
mysql_fetch_array()
:从结果集中取得一行作为关联数组,或数字数组,或二者兼有
这3种方法都是从结果集种取得一行作为数组,根据表中的数据和需要输出的结果选择其中一种方法。mysql_fetch_array()
是前两者的综合,效率和前两者相同,并无明显差距。为了前端输出更清楚,这里我选择的是mysql_fetch_assoc。
这3种方法返回的结果都是带有指针的,每次调用的时候除了做取出的动作还会对指针位置向前移动,如果结果集没有任何数据了则反回false。所以如果不参与循环 , 那取回的数据自然就只有一行,而参与while()循环输出是方便的选择。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦