日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php+sqlserver实现分页效果

發(fā)布時間:2024/8/26 php 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php+sqlserver实现分页效果 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

找了一些實現(xiàn)的代碼,都或多或少有點問題。

主要問題在于:

  • 在進(jìn)行一頁數(shù)據(jù)查詢時的sql語句格式問題,
    • 開始嘗試使用limit關(guān)鍵字查詢,錯誤,limit用于mysql;
    • 接著使用ROWNUM、row_number(),有的博客寫這兩個方法是oracle和sqlserver公用的,但測試失敗;
    • 最后用top 和 not in關(guān)鍵字做查詢。
  • 解決這個問題之后,發(fā)現(xiàn)sqlsrv_num_rows()函數(shù)報錯,參考sqlsrv驅(qū)動API文檔發(fā)現(xiàn):
  •   

      

    <?php $page=$_GET["page"]+0; $page= $page<=0 ? 1 : $page; //避免$_GET["page"]為負(fù)數(shù)和0的情況//分頁尺寸 $page_size=30; $sql1 = sqlsrv_query($conn, $sql, array(), array( "Scrollable" => 'static' )); $rows = sqlsrv_has_rows($sql1);//計算總行數(shù) $total_records=sqlsrv_num_rows( $sql1 );//總頁數(shù) $total_page=ceil($total_records/$page_size); //進(jìn)一法取整,避免最后一頁不滿$page_size, $page=$page>$total_page?$total_page:$page; //避免$_GET["page"]大于總頁數(shù)//翻頁鏈接開始 $page_link=""; if ($total_page>1) { $page_link="<a>一共{$total_page}頁</a>"; $page_link.="<a>當(dāng)前第{$page}頁</a>"; $page_link.="<a href=?page=1>首頁</a>";if ($page>1){ //頁碼大于1的時候,顯示上一頁翻頁鏈接 $pre_page=$page-1; $page_link.="<a href='?page=$pre_page'><<</a>"; } //翻頁列表 for ($i=1;$i<=$total_page;$i++) { if ($i==$page) { //高亮當(dāng)前頁頁碼 $page_link.="<a href='?page=$i' class='currentpage'>$i</a>"; } else { $page_link.="<a href='?page=$i'>$i</a>"; } } //頁碼小于總頁數(shù)的時候顯示下一頁翻頁鏈接 $next_page=$page+1; if($next_page<$total_page) { $page_link.="<a href='?page={$next_page}'>>></a>"; } $page_link.="<a href='?page=$total_page'>最后一頁</a>"; } //輸出記錄 $offset=($page-1)*$page_size;$start = $offset; $pagesize = $page_size; $sqls = "select top $pagesize o.*from ($sql) as o where id not in(select top $start id from ($sql) as oo order by id asc) order by id asc" ; $rst_view = sqlsrv_query($conn, $sqls); if( $rst_view === false) {echo "Error in query preparation/execution.\n";die( print_r( sqlsrv_errors(), true)); }while($row_show = sqlsrv_fetch_array($rst_view)){ ?> <tr><td><a href="#" οnclick="javascript:Wopen=open('showinfo.php?id=<?php echo $row_show[1]; ?>','','height=720,width=620,scrollbars=no');"><?php echo $row_show[1]; ?></a></td><td><?php echo $row_show[2]; ?></td><td><?php echo $row_show[3]; ?></td><td><?php echo $row_show[5]; ?></td><td><?php echo $row_show[7]; ?></td><td><?php echo $row_show[12]; ?></td> </tr> <?php } } ?> </tbody> </table> </div> <?php echo "<div class='page'>$page_link</div>"; ?>

    解決問題過程中參考一下網(wǎng)頁:

    求PHP+SQLServer的翻頁效果

    Oracle、MySql、SQLServer 數(shù)據(jù)分頁查詢

    sqlsrv_num_rows

    Cursor Types (SQLSRV Driver)

    轉(zhuǎn)載于:https://www.cnblogs.com/hhccdf/p/5505963.html

    總結(jié)

    以上是生活随笔為你收集整理的php+sqlserver实现分页效果的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。