【问题标题】:How do I add pagination or a pagination limit [duplicate]如何添加分页或分页限制[重复]
【发布时间】:2020-10-23 01:49:42
【问题描述】:

我想知道如何为我的查询添加分页限制。

没有限制的查询。

if(!empty($sqlParts))
{
  $sql = "SELECT * FROM tablename WHERE " .implode( " AND " , $sqlParts);                        
}

有限制的查询。

if(!empty($sqlParts)) 
{
  $sql = "SELECT * FROM tablename WHERE " .implode( " AND " , $sqlParts) ' LIMIT ' $offset ',' $no_of_records_per_page;                        
}

想法是先显示我数据库中的一定数量的数据,然后才能转到下一页显示其余数据。

解析错误:语法错误,意外 '' LIMIT '' - 这是我上面代码的错误。

【问题讨论】:

  • 没有排序的分页没有任何意义。
  • 语法错误。您必须将字符串与“.”连接起来。
  • $sql = "SELECT * FROM properties WHERE ".implode(" AND ", $sqlParts)." LIMIT $offset,$no_of_records_per_page"; - 谢谢我的语法完全错误。我只是错过了那部分。虽然我必须对代码进行分页。

标签: php mysql sql pagination implode


【解决方案1】:

执行前请打印SQL 我认为您缺少 $offset 或 $no_of_records_per_page 值

【讨论】:

  • 这是构建查询数组之前的代码 ``` if (isset($_GET['pageno'])) { $pageno = $_GET['pageno']; } 其他 { $pageno = 1; } $no_of_records_per_page = 3; $offset = ($pageno-1) * $no_of_records_per_page; ``` 这是计算和获取应该显示的数据量的代码 ``` $total_pages_sql = "SELECT COUNT(*) FROM table"; $result = mysqli_query($conn,$total_pages_sql); $total_rows = mysqli_fetch_array($result)[0]; $total_pages = ceil($total_rows / $no_of_records_per_page); ``
【解决方案2】:

试试这个,如果你打印并发送查询会更容易修复

if (isset($_GET['pageno']) && $_GET['pageno'] > 0) {
    $pageno = $_GET['pageno'];
} else {
    $pageno = 1;
}
$no_of_records_per_page = 3;
$offset = ($pageno-1) * $no_of_records_per_page;

if(!empty($sqlParts) && is_array($sqlParts))
{
  $sql = "SELECT * FROM tablename WHERE " .implode( " AND " , $sqlParts) ' LIMIT ' $offset ',' $no_of_records_per_page; 
}

【讨论】:

  • 谢谢@GajananTagadpalle。像魅力一样工作。虽然我如何实现分页?这样它会显示 $no_of_records_per_page 如果我转到下一页它会从最后一条记录继续?
猜你喜欢
  • 2018-06-30
  • 1970-01-01
  • 2016-12-21
  • 2012-01-11
  • 1970-01-01
  • 2014-09-26
  • 2022-01-23
  • 1970-01-01
  • 2012-06-25
相关资源
最近更新 更多