2017-06-26 2 views
0

私はaspとphpに移動しました。私はmssqlデータベースに接続してレコードを取得できます。私が気にしているのは、一度に10個のレコードを示すレコードをどのようにページ付けするかです。具体的な結果を得るために、OFFSETを使用できphpとmssqlサーバーのレコードをページ区切り

<table width="40%" border="1" align="center" cellpadding="5" cellspacing="5"> 
    <tr> 
    <td>Item-</td> 
    <td>Quantity</td> 
    <td>Price</td> 
    </tr> 
    <?php 
while($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) { 
     ?> 
    <tr> 
    <td> <?php echo $row['item'] ?></td> 
    <td><?php echo $row['quantity'] ?></td> 
    <td><?php echo $row['rprice'] ?></td> 

    </tr> 
    <?php 
} 
    ?> 
    <tr> 
    <td><div align="left">Previous</div></td> 
    <td>&nbsp;</td> 
    <td><div align="right">Next</div></td> 
    </tr> 
</table> 

PHP SCRIPT

<?php require_once('Connections/db.php'); ?> 
<?php 
$sql = "SELECT * FROM item_table order by item desc"; 
$params = array(); 
$options = array("Scrollable" => SQLSRV_CURSOR_KEYSET); 
$stmt = sqlsrv_query($conn, $sql , $params, $options); 
$row_count = sqlsrv_num_rows($stmt); 

if ($row_count === false) 
    echo "Error in retrieveing row count."; 
else 
    echo $row_count; 
?> 

答えて

0

$startingRow = 5; 
$rowsPerPage = 10; 

SELECT * FROM item_table order by item desc 
OFFSET $startingRow ROWS FETCH NEXT $rowsPerPage ROWS ONLY 

あなたがしたい場合は、15日

0

に5日から結果を取得しますSQL Serverのページングでは、ROW_NUMBER関数を使用して行を並べ替えることができます&開始点を指定するWHERE句、およびTOP句内のレコード数を示します。

以下の例を参照してください。私はCTE構文を好む。

--inline syntax 
select top(10) * from (select row_number() over(order by item) as rid, * from item_table) as d where rid>10; 

--cte syntax 
with _numberedData as 
(
    select 
     row_number() over(order by item) as rid, 
     * 
    from item_table 
) 

select top(10) 
    * 
from _numberedData 
where rid>10;