Maison  >  Article  >  développement back-end  >  Exemple de comment implémenter une boucle infinie en PHP pour obtenir des données dans MySQL

Exemple de comment implémenter une boucle infinie en PHP pour obtenir des données dans MySQL

黄舟
黄舟original
2017-08-22 09:21:162029parcourir

Récemment, l'entreprise a eu besoin d'obtenir des données de MySQL, puis de les afficher dans une boucle sans fil sur la page. En fait, cette fonction peut être réalisée via jq, ou via php+mysql. avec vous les données illimitées basées sur PHP Les amis intéressés devraient jeter un œil à la méthode de mise en œuvre d'obtention cyclique de données dans MySQL

Récemment, l'entreprise a eu besoin d'obtenir des données de MySQL, puis de les afficher dans une boucle sans fil sur la page. L'essentiel est de continuer à cliquer sur un bouton, puis les données défileront du début à la fin. Si les données à la fin ne suffisent pas, prenez quelques éléments du début des données pour les compléter.

En fait, cette fonction peut être implémentée via JQ ou PHP + MYSQL, mais JQ est plus pratique et plus efficace.

Affichez 10 éléments de données à chaque fois.


 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);
 }

L'instruction SQL ci-dessus utilise la méthode union all de MySQL pour assembler les deux ensembles et prendre les dix premiers éléments de données.


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

L'étape suivante consiste à récupérer les données dans le contrôleur et à fournir une interface de données pour 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;
  }

Résumé

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn