首页 文章

使用PHP和MySQL一次查询项目#fixnum项目的分页表

提问于
浏览
-2

所以我试图找到一种方法从查询中返回一个非常大的结果集,并将其显示为网页上的分页表 .

例如,如果我尝试从我的数据库返回1,000个项目,我想将它们显示在分页表中,一次100个,并且只查询这100个项目 .

当用户在搜索框中输入要查询的名称时,我希望他们能够点击表格分页,其中每个分页仅查询100个项目,因此“页面”1显示项目1-100,'页面'2显示项目101-200等...

我想这样做是因为查询一个非常大的结果集然后只是分页显示非常慢 .

有没有人对如何使用PHP和MySQL做这个有任何建议?

我的分页工作正常,我只是无法弄清楚如何运行我的查询 .

这是我现在的查询:

mysql_query("SELECT name, age, address FROM users  WHERE name='$name' AND domain_name='$age' LIMIT 100", $localDB);

如何使用此查询仅返回结果集101-200,201-300等...?

2 回答

  • 1

    如果您已经知道分页的数量(数字),那么只需在您的SQL上放置 limit 即可 .

    使用PDO的示例:

    //url passed has a token of &page=[digit]
    //Do prior error checking to verify $_GET/POST has a page variable, and it is a digit.
    
    if ($page < 1) { $page = 1;}
    
    $offset=$limit*($page-1); // Will give an offset of 100 on page 1, or 200 on page 2, etc
    
    
    $sql = "SELECT `items` FROM items_db WHERE itemno=:itemno LIMIT :offset, 100";
    
    $sql_query = $conn->prepare($sql); // Existing connection
    $sql_query->bindParam(':itemno',$itemno, PDO::PARAM_INT);
    $sql_query->bindParam(':offset', $offset, PDO::PARAM_INT);
    
    $sql_query->execute();
    
  • 1

    尝试在您的查询中使用“LIMIT

    例如:

    $query. "LIMIT 0,100"
    

    这有助于您限制查询结果 . 而不是获得所有行,您可以根据您的要求限制 .

相关问题