简体   繁体   English

使用SQL Server Limit和Offet的php分页

[英]php pagination using sql server Limit and Offet

I have a problem with php pagination. 我对php分页有问题。 I trying make a list from a db and generate pages. 我试图从数据库列表并生成页面。 Below there is a part of code. 下面有一部分代码。 If I am right I can't use limit and offset in my sql server? 如果我是对的,我无法在SQL Server中使用限制和偏移量?

$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>';
    }

what is wrong? 怎么了?

It seems like you're forgetting to actually fetch the data: 似乎您忘记了实际获取数据:

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

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

Also, per sevnlabs' answer, there's no LIMIT in T-SQL. 此外,根据sevnlabs的回答,T-SQL中没有限制。

There's no LIMIT in SQL Server. SQL Server中没有限制。 You can use SELECT TOP XY for limiting your result. 您可以使用SELECT TOP XY来限制结果。 The offset could be realised via the last received primary key. 可以通过最后接收的主键来实现偏移。 Something like "WHERE id > lastReturnedId" for the next page. 下一页的内容类似“ WHERE id> lastReturnedId”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM