如何使用分页显示数据库表中的所有行/记录?

时间:2014-09-21 05:38:53

标签: php mysql pagination row

我在数据库表中有数百条记录。

代码:

$result = mysqli_query($con,"SELECT * FROM booking_tbl");

echo "<table border='1'>
        <tr>
        <th>Booking ID</th>
        <th>Name</th>
        </tr>";

        while($row = mysqli_fetch_array($result)) {
          echo "<tr>";
          echo "<td>" . $row['booking_nmbr'] . "</td>";
          echo "<td>".$row['name_title']." ".$row['sender']."</td>";
          echo "</tr>";
        }

        echo "</table>";

        mysqli_close($con);

显示表booking_tbl中的所有记录。

但是我希望每页打破25个结果。我该怎么做?

3 个答案:

答案 0 :(得分:1)

一种简单的方法是使用limitoffset关键字。 limit控制要显示的行数,offset控制查询开始的位置。显然,它们应该与order by子句一起使用。

因此,例如,对于您使用的第一页:

SELECT * FROM booking_tbl ORDER BY booking_nmbr LIMIT 25 OFFSET 0

第二页:

SELECT * FROM booking_tbl ORDER BY booking_nmbr LIMIT 25 OFFSET 25

答案 1 :(得分:1)

易。只需使用MySQL LIMIT子句。所以你的代码是这样的:

$result = mysqli_query($con,"SELECT * FROM booking_tbl");

只需将其设置为:

$result = mysqli_query($con,"SELECT * FROM booking_tbl LIMIT 0,10");

这会将查询设置为从10(意味着第一条记录)的偏移量中获取0条记录。

格式基本上是:

LIMIT offset, count

offset是要检索的记录集的实际偏移量。并且count是记录计数。

因此,要知道您的下一步是通过获取URL参数来设置分页,并执行以下操作:

$offset = $_REQUEST['offset'];
$count= $_REQUEST['count'];
$result = mysqli_query($con,"SELECT * FROM booking_tbl LIMIT $offset,$count");

我认为伪代码是可行的,但你应该对$_REQUEST值进行过滤,但一般概念是正确的。

答案 2 :(得分:1)

如果您有兴趣使用Javascript实现此目的,那么您可以使用javascript DataTable库。 http://datatables.net/

您将通过一种非常简单的方法获得表格中的分页,搜索和其他一些功能。 此外,它易于实现并能够处理非常大的数据。