首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将搜索结果分割成页面?

问如何将搜索结果分割成页面?
EN

Stack Overflow用户
提问于 2011-08-01 09:20:48
回答 5查看 25K关注 0票数 3

如何将搜索结果分成几页?(如第1页、第2页、第3页.)

当用户在我的电子商务网站上搜索产品时,我希望将结果分成几个页面,每页显示大约20个产品。搜索结果是数据库查询的结果。

例如,:,如果用户搜索三星手机,那么我的查询将是:

SELECT * FROM PRODUCTS WHERE BRAND='SAMSUNG';

假设上面的查询返回55个结果,如何将它们显示到页面(1,2和3)中?

我在Windows机器上使用PHP,MySQL,Apache。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-08-01 09:23:57

适当的SQL将添加:

代码语言:javascript
复制
LIMIT start, amount

你可以像

代码语言:javascript
复制
search.php?start=20

然后编码如下:

代码语言:javascript
复制
LIMIT $start, $amount

使用

代码语言:javascript
复制
$start = intval($_GET['start']);

和

代码语言:javascript
复制
$amount = 20;

这将导致每页最多20条记录。

票数 13
EN

Stack Overflow用户

发布于 2011-08-01 09:22:08

使用SQL的LIMIT关键字限制查询的结果数量;例如:

从品牌=‘三星’限制的产品中选择* 20,40;

这将选择20个元素,从第40位开始。

票数 3
EN

Stack Overflow用户

发布于 2011-08-01 09:34:10

以下是完整的代码:

代码语言:javascript
复制
<?php
// Requested page
$requested_page = isset($_GET['page']) ? intval($_GET['page']) : 1;

// Get the product count
$r = mysql_query("SELECT COUNT(*) FROM PRODUCTS WHERE BRAND='SAMSUNG'");
$d = mysql_fetch_row($r);
$product_count = $d[0];

$products_per_page = 20;

// 55 products => $page_count = 3
$page_count = ceil($product_count / $products_per_page);

// You can check if $requested_page is > to $page_count OR < 1,
// and redirect to the page one.

$first_product_shown = ($requested_page - 1) * $products_per_page;

// Ok, we write the page links  
echo '<p>';
for($i=1; $i<=$page_count; $i++) {
    if($i == $requested_page) {
        echo $i;
    } else {
        echo '<a href="/products/samsung/'.$i.'">'.$i.'</a> ';
    }
}
echo '</p>';

// Then we retrieve the data for this requested page
$r = mysql_query("SELECT * FROM PRODUCTS WHERE BRAND='SAMSUNG' LIMIT $first_product_shown, $products_per_page");

while($d = mysql_fetch_assoc($r)) {
    var_dump($d);
}
?>

希望能帮上忙。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6896412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档