INNER JOIN を使用して 2 つのテーブルを接続し、ページごとに表示される結果の量を 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 を使用せずにクエリを実行すると、ページに結果が表示されるため、INNER JOIN を使用していることと関係があることがわかります。
$tsql = "SELECT *
FROM (SELECT ROW_NUMBER() OVER(ORDER BY productID) AS
rownum, * FROM products ) AS products1
WHERE rownum >= 0 AND rownum <= 6";