首頁  >  文章  >  後端開發  >  php實作無限循環取得MySQL中資料的方法範例

php實作無限循環取得MySQL中資料的方法範例

黄舟
黄舟原創
2017-08-22 09:21:162029瀏覽

最近公司有個需求需要從MySQL取得數據,然後在頁面上無線循環的翻頁展示.其實這個功能可以透過jq實現,也可以透過php+mysql實現,下面小編給大家分享基於PHP無限循環取得MySQL中的數據實作方法,有興趣的朋友一起看看吧

最近公司有個需求需要從MySQL取得數據,然後在頁面上無線循環的翻頁展示。主要就是一直點擊一個按鈕,然後數據從最開始循環到末尾,如果末尾的數據不夠了,那麼從數據的最開始取幾個補充上來。

  其實,這個功能可以透過JQ實現,也可以透過PHP + MYSQL實現,只不過JQ比較方便而且效率更高罷了。

  每次顯示10個資料。


 public function get_data($limit){
 $sql="select * from ((select id,name from `mytable` limit {$limit},10) union all (select id,name from `mytable` limit 0,10)) as test limit 0,10";
    return $this->query($sql);
 }

  上述sql語句透過mysql的union all方法,把兩個集合拼接到一起,並取前十條資料。


 public function getCount(){//获取数据的条数
     $sql="select count(id) as t from `mytable`";
     return $this->query($sql);
 }

  下一步在控制器中取得數據,並提供ajax資料介面。


//测试数据库无限循环取数据
   public function getInfiniteData(){
    //用户点击数
    $page = $_GET['click'];
     //每次展示条数
    $pagesize = 10;
     //获取总条数
    $total = $this->Mydemo->get_count();
    $t = $total[0][0]['t'];
     //算出每次点击的其起始位置
    $limit = (($page - 1)*$pagesize)%$t;
    $data = $this->Mydemo->get_data($limit);
    if (!empty($data)) {
      //转换为二维数组
      $list = [];
      foreach ($data as $key => $v) {
        $list[$key] = $data[$key][0];
      }
      $info['msg'] = $list;
      $info['code'] = '001';
    }else{
      $info['code'] = '002';
      $info['msg'] = '暂无数据';
    }
    echo json_encode($info,JSON_UNESCAPED_UNICODE);die;
  }

#總結

#

以上是php實作無限循環取得MySQL中資料的方法範例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn