网页实现从数据库读取数据并简单分页

大致的思想就是:

  1.设置每页要显示的最大记录数。

  2.计算出页面总数

  3.当前页面跟总页面数比较改变连接的状态

  4.用limit控制从数据库中读取记录

代码:

$conn = mysql_connect('localhost','root','');
mysql_select_db('db_BookStore',$conn);
mysql_query("set names utf8");
if(isset($_GET['page'])) { //判断是否存在page参数,获得页面值,否则取1
    $page = intval($_GET['page']);
} else {
    $page = 1;
}
$page_size = 2; //最大记录条数
$sql = "SELECT count(*) as amount FROM tb_BookInfo";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);//计算总页数
$amount = $row['amount'];
if($amount) {
    if($amount < $page_size) {
        $page_count = 1;
    }
    if($amount % $page_size) {
        $page_count = (int)($amount / $page_size) + 1;
    } else {
        $page_count = $amount / $page_size;
    }
} else {
    $page_count = 0;
}//翻页链接
$page_string = "";
if($page == 1) {
    $page_string .= "首页 | 上一页";
} else {
    $page_string .= "<a href='?page=1'>首页</a> | <a href='?page=".($page-1)."'>上一页</a>";
}
$page_string .= "| $page |";
if($page == $page_count) {
    $page_string .= "下一页 | 尾页";
} else {
    $page_string .= "<a href='?page=".($page+1)."'>下一页</a> | <a href='?page=$page_count'>尾页</a>";
}
  $sql = "select * from table order by id desc limit ". ($page-1)*$page_size .", $page_size";
  $result = mysql_query($sql);
  while ( $row = mysql_fetch_row($result) ) {
    $rowset[] = $row;
    }

代码二:

<?php

$conn=mysql_connect('127.0.0.1','root','');

mysql_query('use test',$conn);
mysql_query('set names utf8',$conn);

$perNumber=3; //每页显示的记录数
$page=$_GET['page']; //获得当前的页面值
$count=mysql_query("select count(*) from kangbiao"); //获得记录总数
$rs=mysql_fetch_array($count); 
$totalNumber=$rs[0];
$totalPage=ceil($totalNumber/$perNumber); //计算出总页数
if (!isset($page)) {
 $page=1;
} //如果没有值,则赋值1
$startCount=($page-1)*$perNumber; //分页开始,根据此方法计算出开始的记录
$result=mysql_query("select * from kangbiao limit $startCount,$perNumber"); //根据前面的计算出开始的记录和记录数

echo "<table border='1'>";
echo "<tr>";
echo "<th>id</th>";
echo "<th>name</th>";
echo "<th>age</th>";
echo "<th>grade</td>";
echo "</tr>";
while ($row=mysql_fetch_array($result)) {

echo "<tr>";
 echo "<td>$row[0]</td>"; 
 echo "<td>$row[1]</td>";
 echo "<td>$row[2]</td>";
 echo "<td>$row[3]</td>";  //显示数据库的内容
echo "</tr>";
}
echo "</table>";

if ($page != 1) { //页数不等于1
?>
<a href="02.php?page=<?php echo $page - 1;?>">上一页</a> <!--显示上一页-->
<?php
}
for ($i=1;$i<=$totalPage;$i++) {  //循环显示出页面
?>
<a href="02.php?page=<?php echo $i;?>"><?php echo $i ;?></a>
<?php
}
if ($page<$totalPage) { //如果page小于总页数,显示下一页链接
?>
<a href="02.php?page=<?php echo $page + 1;?>">下一页</a>
<?php
} 
?>
以下是一个基于HTML、JavaScript和PHP的简单表格分页代码: HTML代码: ```html <table id="myTable"> <thead> <tr> <th>列1</th> <th>列2</th> <th>列3</th> </tr> </thead> <tbody> <!-- 数据行将在JavaScript中动态添加 --> </tbody> </table> <div id="pagination"></div> ``` JavaScript代码: ```javascript var table = document.getElementById("myTable"); var rowsPerPage = 10; // 每页显示的行数 var currentPage = 0; function updateTable(data) { // 清空表格除表头外的所有行 for (var i = 1; i < table.rows.length; i++) { table.rows[i].style.display = "none"; } // 添加新的数据行 for (var i = currentPage * rowsPerPage; i < Math.min((currentPage + 1) * rowsPerPage, data.length); i++) { var row = table.insertRow(-1); var cell1 = row.insertCell(0); var cell2 = row.insertCell(1); var cell3 = row.insertCell(2); cell1.innerHTML = data[i].col1; cell2.innerHTML = data[i].col2; cell3.innerHTML = data[i].col3; row.style.display = "table-row"; } } function previousPage() { if (currentPage > 0) { currentPage--; getData(); } } function nextPage() { if ((currentPage + 1) * rowsPerPage < totalRows) { currentPage++; getData(); } } function createPagination() { var pagination = document.getElementById("pagination"); var pageCount = Math.ceil(totalRows / rowsPerPage); for (var i = 0; i < pageCount; i++) { var pageLink = document.createElement("a"); pageLink.href = "#"; pageLink.innerHTML = i + 1; pageLink.onclick = function() { currentPage = this.innerHTML - 1; getData(); }; pagination.appendChild(pageLink); } } function getData() { // 向服务器请求数据 var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { var data = JSON.parse(xhr.responseText); updateTable(data); } }; var start = currentPage * rowsPerPage; var length = rowsPerPage; xhr.open("GET", "get_data.php?start=" + start + "&length=" + length, true); xhr.send(); } // 获取总行数 var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { totalRows = parseInt(xhr.responseText); createPagination(); getData(); } }; xhr.open("GET", "get_total_rows.php", true); xhr.send(); ``` CSS代码: ```css table { border-collapse: collapse; } th, td { border: 1px solid black; padding: 5px; } #pagination a { display: inline-block; border: 1px solid black; margin: 0 5px; padding: 5px; } ``` PHP代码(get_total_rows.php): ```php <?php // 获取总行数 $conn = mysqli_connect("localhost", "username", "password", "database"); $result = mysqli_query($conn, "SELECT COUNT(*) FROM table_name"); $row = mysqli_fetch_array($result); echo $row[0]; mysqli_close($conn); ?> ``` PHP代码(get_data.php): ```php <?php // 获取数据 $start = $_GET["start"]; $length = $_GET["length"]; $conn = mysqli_connect("localhost", "username", "password", "database"); $result = mysqli_query($conn, "SELECT col1, col2, col3 FROM table_name LIMIT $start, $length"); $data = array(); while ($row = mysqli_fetch_array($result)) { array_push($data, array("col1" => $row[0], "col2" => $row[1], "col3" => $row[2])); } echo json_encode($data); mysqli_close($conn); ?> ``` 上述代码中,PHP代码用于从数据库中获取数据。`get_total_rows.php`用于获取数据总行数,`get_data.php`用于获取分页后的数据。在JavaScript中,`updateTable`函数用于更新表格中的数据行,`getData`函数用于向服务器请求数据,`createPagination`函数用于生成分页器。CSS代码用于设置表格和分页器的样式。 请注意,上述代码仅为示例代码,需要根据实际情况进行修改。例如,需要将数据库连接信息、数据表名称、列名等修改为实际的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值