Php 具有内部联接SQL Server 2008分页的行号()

Php 具有内部联接SQL Server 2008分页的行号(),php,sql-server-2008,pagination,Php,Sql Server 2008,Pagination,我正在尝试使用内部联接将两个表连接在一起,并使用行号限制每页显示的结果量: $tsql = "SELECT * FROM (SELECT ROW_NUMBER() OVER(ORDER BY productID) AS rownum, * FROM products INNER JOIN product_catalogue ON products.catalogueID = product_catalogue.catalogueID WHERE category1 = '1')

我正在尝试使用内部联接将两个表连接在一起,并使用行号限制每页显示的结果量:

$tsql = "SELECT *
FROM (SELECT ROW_NUMBER() OVER(ORDER BY productID) AS
rownum, * FROM products INNER JOIN product_catalogue ON products.catalogueID = product_catalogue.catalogueID
        WHERE category1 = '1') AS products1
WHERE rownum >= 0 AND rownum <= 6";

  $stmt = sqlsrv_query($conn,$tsql);

 while($row = sqlsrv_fetch_array($stmt)){ 
        echo $row['productID']. "<br/>";
         echo $row['product_name']. "<br/>";

  }
我得到sqlsrv_fetch_数组期望参数1是资源错误,我知道这与我使用内部联接有关,因为如果我在没有它的情况下运行查询,我会在页面上显示结果:

$tsql = "SELECT *
FROM (SELECT ROW_NUMBER() OVER(ORDER BY productID) AS
rownum, * FROM products ) AS products1
WHERE rownum >= 0 AND rownum <= 6";

我猜你是在说微软的SQL server。 我不使用php编写代码,但您应该首先检查以下事项:

您的查询工作是否在SSMS中仅使用SQL MS SQL 您可以指定特定的列名,也许您有双重命名的列!e、 g.名为id的两列 然后在结果中重复2次相同的解决方案,SQL没有问题, 但对于大多数数据库连接器驱动程序来说,这是一个问题 如果所有这些都不起作用,则创建一个查询CREATE query qry_yourQuery AS 然后使用SELECT*FROM qry_查询