0

我正在尝试将两个表与 INNER JOIN 连接在一起,并使用 ROW_NUMBER 限制每页显示的结果数量:

$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_array() 期望参数 1 是资源”错误,并且我知道这与使用 INNER JOIN 的我有关,因为如果我在没有它的情况下运行查询,我的页面上会显示结果:

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

1 回答 1

0

我猜你在谈论 MS SQL 服务器。我不会在 php 中编码,但您应该先检查以下内容:

  1. 您的查询是否仅使用 SQL(SSMS 中的 MS SQL)
  2. 您特定的列名,也许您有双重命名的列!例如,名为“id”的两列然后你的结果是相同的 2 倍,对于 SQL 来说没问题,但对于大多数数据库连接器驱动程序来说是个问题
  3. 如果一切都不起作用,请进行查询( CREATE QUERY qry_yourQuery AS )然后使用 SELECT * FROM qry_yourQuery
于 2012-05-12T07:14:01.333 回答