【问题标题】:php pagination using sql server Limit and Offet使用 sql server 限制和偏移的 php 分页
【发布时间】:2014-12-03 22:54:28
【问题描述】:

我的 php 分页有问题。我尝试从数据库中创建一个列表并生成页面。下面是部分代码。如果我是对的,我不能在我的 sql 服务器中使用限制和偏移量?

$stmt = $conn->prepare('SELECT * FROM db_name ORDER BY use_by_date LIMIT :limit OFFSET :offset');

$stmt->bindParam(':limit', $limit, PDO::PARAM_INT);
$stmt->bindParam(':offset', $offset, PDO::PARAM_INT);
$stmt->execute();


    if ($stmt->rowCount() > 0) {

        $stmt->setFetchMode(PDO::FETCH_ASSOC);
        $iterator = new IteratorIterator($stmt);
        foreach ($iterator as $row) {
            echo '<p>', $row['name'], '</p>';
        }

    }

 else {
        echo '<p>No results could be displayed.</p>';
    }

怎么了?

【问题讨论】:

    标签: php sql-server pagination


    【解决方案1】:

    SQL Server 没有限制。您可以使用 SELECT TOP XY 来限制您的结果。偏移量可以通过最后收到的主键来实现。下一页的内容类似于“WHERE id > lastReturnedId”。

    【讨论】:

      【解决方案2】:

      您似乎忘记实际获取数据:

      $rows = $stmt->fetchAll();
      foreach ($rows as $row) { ... }
      

      http://php.net/manual/en/pdostatement.fetchall.php

      此外,根据 sevnlabs 的回答,T-SQL 中没有限制。

      【讨论】:

      • 是的。但是sql查询返回0行
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 2014-09-20
      • 2014-08-26
      • 1970-01-01
      • 2016-02-13
      相关资源
      最近更新 更多