php怎么实现两个分页
时间 : 2023-04-26 05:48:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

PHP可以通过使用分页类来实现多个分页。以下是实现两个分页的示例:

示例1:使用两个分页对象

```php

<?php

require_once "paginator.class.php";

// 分页1

$page1 = new Paginator();

$page1->items_per_page = 10;

$page1->current_page = isset($_GET['page1']) ? $_GET['page1'] : 1;

$page1->url = "page1.php?page1={page}";

// 分页2

$page2 = new Paginator();

$page2->items_per_page = 5;

$page2->current_page = isset($_GET['page2']) ? $_GET['page2'] : 1;

$page2->url = "page2.php?page2={page}";

// 查询数据1

$sql1 = "SELECT * FROM table1 LIMIT " . $page1->get_start() . "," . $page1->items_per_page;

// 执行查询1

// ...

// 查询数据2

$sql2 = "SELECT * FROM table2 LIMIT " . $page2->get_start() . "," . $page2->items_per_page;

// 执行查询2

// ...

// 显示分页1

echo "<div>".$page1->page_links()."</div>";

// 显示查询结果1

foreach($result1 as $row) {

// ...

}

// 显示分页2

echo "<div>".$page2->page_links()."</div>";

// 显示查询结果2

foreach($result2 as $row) {

// ...

}

?>

示例2:使用同一个分页对象

```php

<?php

require_once "paginator.class.php";

// 分页

$page = new Paginator();

$page->items_per_page = 10;

$page->current_page = isset($_GET['page']) ? $_GET['page'] : 1;

$page->url = "page.php?page={page}";

// 查询数据1

$sql1 = "SELECT * FROM table1 LIMIT " . $page->get_start() . "," . $page->items_per_page;

// 执行查询1

// ...

// 显示查询结果1

echo "<h3>查询结果1</h3>";

foreach($result1 as $row) {

// ...

}

// 显示分页1

echo "<div>".$page->page_links()."</div>";

// 查询数据2

$page->items_per_page = 5;

$sql2 = "SELECT * FROM table2 LIMIT " . $page->get_start() . "," . $page->items_per_page;

// 执行查询2

// ...

// 显示查询结果2

echo "<h3>查询结果2</h3>";

foreach($result2 as $row) {

// ...

}

// 显示分页2

echo "<div>".$page->page_links()."</div>";

?>

需要注意的是,以上示例中使用的Paginator类是一个自定义的分页类,可以根据具体需求进行修改。同时,示例中的查询语句只是为了演示使用,实际应用中需要根据具体情况进行修改。

在 PHP 中,实现两个分页需要进行以下步骤:

1. 首先,你需要确定两个分页的数据来源,即从数据库中获取的数据。

2. 接着,你需要定义每个分页的页面大小,即每页显示多少条数据。

3. 然后,你需要获取当前页码。可以通过 GET 或 POST 请求从前端获取当前页面的页码参数。

4. 根据获取到的页码和页面大小,向数据库中查询对应数据。可以使用 SQL 语句的 LIMIT 关键字实现查询指定页码的数据。

5. 最后,展示查询到的数据,并且在页面上渲染分页控件,让用户可以通过点击分页控件切换不同的页码。

下面是一个示例代码,实现了两个分页的分别查询和展示。

<?php

// 第一个分页

$page1 = isset($_GET['page1']) ? intval($_GET['page1']) : 1;

$page1_size = 10;

$offset1 = ($page1 - 1) * $page1_size;

// 第二个分页

$page2 = isset($_GET['page2']) ? intval($_GET['page2']) : 1;

$page2_size = 20;

$offset2 = ($page2 - 1) * $page2_size;

// 从数据库中查询数据

$data1 = query_data_from_database($offset1, $page1_size);

$data2 = query_data_from_database($offset2, $page2_size);

// 展示查询到的数据

echo '<h2>第一个分页</h2>';

foreach ($data1 as $item) {

echo '<div>' . $item['title'] . ' ' . $item['content'] . '</div>';

}

echo '<h2>第二个分页</h2>';

foreach ($data2 as $item) {

echo '<div>' . $item['title'] . ' ' . $item['content'] . '</div>';

}

// 展示分页控件

echo '<div>';

for ($i = 1; $i <= ceil(count_data_in_database() / $page1_size); $i++) {

echo '<a href="?page1=' . $i . '">' . $i . '</a>';

}

echo '</div>';

echo '<div>';

for ($i = 1; $i <= ceil(count_data_in_database() / $page2_size); $i++) {

echo '<a href="?page2=' . $i . '">' . $i . '</a>';

}

echo '</div>';

需要注意,在实际应用中,你需要编写自己的 `query_data_from_database` 和 `count_data_in_database` 函数,分别用于从数据库中查询数据和获取数据总数量。同时,你还需要根据项目实际需求,编写分页控件的 HTML 和样式。