Table des matières
2.1分页组件
2.2获取数据库数据的函数:getData():
2.3页面加载完成,需要请求第一页的数据
3.分析
Composant de pagination 2.1
2.2 Fonction pour obtenir les données de la base de données : getData():🎜
Le chargement de la page 2.3 est terminé, vous devez demander les données de la première page
Maison base de données tutoriel mysql Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL

Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL

Jun 01, 2023 pm 04:19 PM
mysql vue elementui

    1. Problème

    Lorsqu'il y a beaucoup de données dans la base de données, il est nécessaire d'en interroger seulement une partie à la fois pour soulager la pression sur le serveur et la page. Ici, nous utilisons le composant Pagination de elementui et l'instruction limit de mysql pour implémenter une requête de pagination des données mysql. elementui的 Pagination 分页 组件,配合mysqllimit语句,实现分页查询mysql数据。

    下图是最基本的分页样式:

    Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL

    当然需要引入对应的事件,来实现页面改变就查询数据库。

    Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL

    2.解决

    2.1分页组件

    <el-pagination
            background
            layout="prev, pager, next"
            :page-size="8"
            :total="total"
            :current-page="pageNum"
            @current-change="handleCurrentChange">
    </el-pagination>
    Copier après la connexion

    data:初始化总数据条数(total)为1,pageNum也就是当前页数为第一页。

    Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL

    2.2获取数据库数据的函数:getData():

    参数为offsetlimit,向后端请求数据,待会儿解释。这里使用了qs序列化参数。可以参考我的另一篇博客:Vue + ElementUI + Viewer翻页后图片无法预览 Vue父子组件异步通信问题 里面解释了qs的功能。

    getData(offset,limit){
          this.axios.post(&#39;/php/select.php&#39;, qs.stringify({
            offset: offset,
            limit: limit,
            type: &#39;失物招领&#39;
          }), { headers: { &#39;Content-Type&#39;: &#39;application/x-www-form-urlencoded&#39; } }).then((res) => {
            if(res.data === 0){
              this.total = 0;
              this.list = [];
              return;
            }
            this.total = res.data.total
            this.list = res.data.data
            this.loading = false
          }).catch((err) => {
            this.$message.error(err)
          })
        }
    Copier après la connexion

    2.3页面加载完成,需要请求第一页的数据

    created () {
        this.getData(0,8);
      },
    Copier après la connexion

    页面改变触发handleCurrentChange()函数,即点击了翻页,其中val参数就是当前页数,使用新的参数,

    调用getData实现查询不同页面的数据:

    handleCurrentChange(val){
          this.list = [] //清空上一页数据
          this.getData((val-1)*8,8);
        }
    Copier après la connexion

    下面是后端数据:php + mysql<br/>

    现在数据表中总共有10条数据:

    Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL

    前端getData请求的select.php文件

    select.php:

    <?php
    $servername = "localhost";
    $username = "用户名";
    $password = "密码";
    $dbname = "数据库名称";
    
    // 创建连接
    $conn = new mysqli($servername, $username, $password, $dbname);
    // Check connection
    if ($conn->connect_error) {
        die("连接失败: " . $conn->connect_error);
    } 
    
    $type = $_POST[&#39;type&#39;];
    //获取前端的参数 开始和结束number
    if ( !isset( $_POST[&#39;offset&#39;] ) ) {
     echo 0;
     exit();
    };
    $offset = ( int )$_POST[&#39;offset&#39;];
    
    if ( !isset( $_POST[&#39;limit&#39;] ) ) {
     echo 0;
     exit();
    };
    $limit = ( int )$_POST[&#39;limit&#39;];
    //分页查询数据库
    $sql = "SELECT * FROM posts where type=&#39;$type&#39;  order by id desc LIMIT $limit OFFSET $offset";
    $result = $conn->query($sql);
    
    $sqlGetCount = "SELECT COUNT(*) cnt FROM posts where type=&#39;$type&#39;";
    $rescnt = $conn->query($sqlGetCount);
    $rescnt = $rescnt->fetch_assoc();
    $arr = array();
    if ($result->num_rows > 0) {
     while ( $row = $result->fetch_assoc() ) {
        array_push( $arr, $row );
    }
     //echo json_encode( $arr, JSON_UNESCAPED_UNICODE );
     echo json_encode(array_merge(array(&#39;data&#39;=>$arr),array(&#39;total&#39;=>(int)$rescnt[&#39;cnt&#39;])));
     
    } else {
        echo 0;
    }
    mysqli_close( $conn );
    ?>
    Copier après la connexion

    这里使用了mysqllimit实现一次只查询一部分数据,前端传来了参数offsetlimit

    sql语句:

    "SELECT * FROM posts where type=&#39;$type&#39;  order by id desc LIMIT $limit OFFSET $offset"
    Copier après la connexion

    3.分析

    这里的 LIMIT $limit OFFSET $offset的意思就是从 $offest的值开始,查询 $limit条数据。

    例如 $limit = 8, $offest = 0:表示查询数据库的前8条数据,从0开始(不包含0,mysql索引从0开始),查询8条,也就是1~8条数据。
    当我点击第二页时:触发handleCurrentChange()函数:

    Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL

    此时参数val=2,则offest = 8, limit = 8
    就会查询第9~17条数据,如果没有17条数据,也会返回查询到9条后的所有数据。例如目前我数据库就10条数据,那么返回第9条和第10条两条数据。

    同时select.php中页返回了总数据条数total:

    SELECT COUNT(*) cnt FROM posts where type=&#39;$type&#39;
    Copier après la connexion

    Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL

    前端页面获取到total值后赋值给this.total(绑定了Pagination的total属性,也就是总数据条数)。Pagination根据:page-size="8"属性就会将数据自动分页。例如后端返回的total为10,则分成两页。

    Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL

    4.结果

    页面加载完成:因为我是根据id逆序查询,所以获取了第3~10条(共8条)数据。

    Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL

    点击第二页或者翻页按钮:获取第1、2条数据。

    Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL

    注意:你的limit参数一定要和Paginationpage-size属性一致,也就时一次查询一页数据。而offset

    L'image ci-dessous est le style de pagination le plus basique :🎜🎜Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL🎜🎜Bien sûr, vous devez introduire les événements correspondants pour interroger la base de données lorsque la page change. 🎜🎜Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL🎜 🎜2 .Résoudre 🎜🎜

    Composant de pagination 2.1

    rrreee🎜data : Initialiser le nombre total de données (total) à 1, pageNum C'est-à-dire que le numéro de page actuel est la première page. 🎜🎜Comment Vue+ElementUI implémente-t-il la fonction de pagination pour interroger les données MySQL🎜

    2.2 Fonction pour obtenir les données de la base de données : getData():🎜

    🎜Les paramètres sont offset, limit, qui demande des données au backend et sera expliqué plus tard. Les paramètres de sérialisation qs sont utilisés ici. Vous pouvez vous référer à mon autre blog : Vue + ElementUI + Viewer Les images ne peuvent pas être prévisualisées après avoir tourné la page. Problème de communication asynchrone entre les composants parents et enfants de Vue, ce qui explique le fonctionnement de qs. 🎜rrreee

    Le chargement de la page 2.3 est terminé, vous devez demander les données de la première page

    rrreee🎜Le changement de page déclenche la fonction handleCurrentChange(), c'est-à-dire cliquez pour activer page, où le paramètre val est le numéro de la page actuelle, utilisez de nouveaux paramètres, 🎜🎜Appelez getData pour interroger des données sur différentes pages : 🎜rrreee🎜Voici les données back-end : php + mysql🎜🎜🎜 Il y a maintenant un total de 10 éléments de données dans la table de données :🎜🎜Vue+ Comment ElementUI implémente la fonction de pagination pour interroger les données MySQL🎜🎜Le fichier select.php demandé par le getData🎜🎜🎜select.php :🎜 rrreee🎜La limite de mysql est utilisée ici pour interroger seulement une partie de les données à la fois. Le front-end transmet les paramètres offset et limit. 🎜🎜🎜Déclaration SQL :🎜rrreee🎜3. Analyse🎜🎜🎜Le LIMIT $limit OFFSET $offset signifie ici à partir de $offest Début à partir de la valeur, interrogez des éléments de données $limit. 🎜🎜🎜Par exemple, $limit = 8, $offest = 0 : signifie interroger les 8 premières données de la base de données, en commençant à 0 (hors 0, l'index mysql commence à 0), interrogeant 8 éléments, il s'agit également de 1 à 8 éléments de données. 🎜Lorsque je clique sur la deuxième page :La fonction handleCurrentChange() est déclenchée : 🎜🎜Comment Vue+ElementUI implémente-t-il la fonction de pagination pour interroger les données MySQL🎜🎜À ce moment, le paramètre val=2, puis offest = 8, <code>limite = 8. 🎜Les 9ème à 17ème données seront interrogées. S'il n'y a pas de 17ème données, toutes les données après la 9ème données seront renvoyées. Par exemple, ma base de données ne contient actuellement que 10 éléments de données, donc les 9e et 10e éléments de données seront renvoyés. 🎜🎜🎜En même temps, la page intermédiaire de select.php renvoie le nombre total d'éléments de données :🎜rrreee🎜Comment Vue+ElementUI implémente-t-il la fonction de pagination pour interroger les données MySQL🎜🎜La page frontale obtient la valeur total et l'attribue à this.total (lié à l'attribut total de Pagination, qui est le nombre total d'éléments de données). <code>PaginationLes données seront automatiquement paginées selon l'attribut :page-size="8". Par exemple, si le total renvoyé par le backend est de 10, il sera divisé en deux pages. 🎜🎜Comment Vue+ElementUI implémente-t-il la fonction de pagination pour interroger les données MySQL🎜 🎜4 .Résultat🎜🎜🎜Chargement de la page terminé : Parce que j'interrogeais dans l'ordre inverse en fonction de l'ID, j'ai obtenu la 3ème à la 10ème donnée (un total de 8 éléments). 🎜🎜Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL🎜🎜 Cliquez sur la deuxième page ou sur le bouton Tourner la page :Obtenez les 1ère et 2ème données. 🎜🎜Comment Vue+ElementUI implémente la fonction de pagination pour interroger les données MySQL🎜🎜 Remarque :Votre paramètre limit doit être cohérent avec l'attribut page-size de Pagination, c'est-à-dire une requête à la fois les données de la page. Et offset est le numéro de page actuel. 🎜🎜

    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 de ce site Web
    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

    Outils d'IA chauds

    Undresser.AI Undress

    Undresser.AI Undress

    Application basée sur l'IA pour créer des photos de nu réalistes

    AI Clothes Remover

    AI Clothes Remover

    Outil d'IA en ligne pour supprimer les vêtements des photos.

    Undress AI Tool

    Undress AI Tool

    Images de déshabillage gratuites

    Clothoff.io

    Clothoff.io

    Dissolvant de vêtements AI

    AI Hentai Generator

    AI Hentai Generator

    Générez AI Hentai gratuitement.

    Article chaud

    R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Meilleurs paramètres graphiques
    3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Comment réparer l'audio si vous n'entendez personne
    4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
    WWE 2K25: Comment déverrouiller tout dans Myrise
    1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

    Outils chauds

    Bloc-notes++7.3.1

    Bloc-notes++7.3.1

    Éditeur de code facile à utiliser et gratuit

    SublimeText3 version chinoise

    SublimeText3 version chinoise

    Version chinoise, très simple à utiliser

    Envoyer Studio 13.0.1

    Envoyer Studio 13.0.1

    Puissant environnement de développement intégré PHP

    Dreamweaver CS6

    Dreamweaver CS6

    Outils de développement Web visuel

    SublimeText3 version Mac

    SublimeText3 version Mac

    Logiciel d'édition de code au niveau de Dieu (SublimeText3)

    MySQL: la facilité de gestion des données pour les débutants MySQL: la facilité de gestion des données pour les débutants Apr 09, 2025 am 12:07 AM

    MySQL convient aux débutants car il est simple à installer, puissant et facile à gérer les données. 1. Installation et configuration simples, adaptées à une variété de systèmes d'exploitation. 2. Prise en charge des opérations de base telles que la création de bases de données et de tables, d'insertion, d'interrogation, de mise à jour et de suppression de données. 3. Fournir des fonctions avancées telles que les opérations de jointure et les sous-questionnaires. 4. Les performances peuvent être améliorées par l'indexation, l'optimisation des requêtes et le partitionnement de la table. 5. Prise en charge des mesures de sauvegarde, de récupération et de sécurité pour garantir la sécurité et la cohérence des données.

    Comment créer Navicat Premium Comment créer Navicat Premium Apr 09, 2025 am 07:09 AM

    Créez une base de données à l'aide de NAVICAT Premium: Connectez-vous au serveur de base de données et entrez les paramètres de connexion. Cliquez avec le bouton droit sur le serveur et sélectionnez Créer une base de données. Entrez le nom de la nouvelle base de données et le jeu de caractères spécifié et la collation. Connectez-vous à la nouvelle base de données et créez le tableau dans le navigateur d'objet. Cliquez avec le bouton droit sur le tableau et sélectionnez Insérer des données pour insérer les données.

    MySQL: Concepts simples pour l'apprentissage facile MySQL: Concepts simples pour l'apprentissage facile Apr 10, 2025 am 09:29 AM

    MySQL est un système de gestion de base de données relationnel open source. 1) Créez une base de données et des tables: utilisez les commandes CreateDatabase et CreateTable. 2) Opérations de base: insérer, mettre à jour, supprimer et sélectionner. 3) Opérations avancées: jointure, sous-requête et traitement des transactions. 4) Compétences de débogage: vérifiez la syntaxe, le type de données et les autorisations. 5) Suggestions d'optimisation: utilisez des index, évitez de sélectionner * et utilisez les transactions.

    MySQL et SQL: Compétences essentielles pour les développeurs MySQL et SQL: Compétences essentielles pour les développeurs Apr 10, 2025 am 09:30 AM

    MySQL et SQL sont des compétences essentielles pour les développeurs. 1.MySQL est un système de gestion de base de données relationnel open source, et SQL est le langage standard utilisé pour gérer et exploiter des bases de données. 2.MySQL prend en charge plusieurs moteurs de stockage via des fonctions de stockage et de récupération de données efficaces, et SQL termine des opérations de données complexes via des instructions simples. 3. Les exemples d'utilisation comprennent les requêtes de base et les requêtes avancées, telles que le filtrage et le tri par condition. 4. Les erreurs courantes incluent les erreurs de syntaxe et les problèmes de performances, qui peuvent être optimisées en vérifiant les instructions SQL et en utilisant des commandes Explication. 5. Les techniques d'optimisation des performances incluent l'utilisation d'index, d'éviter la numérisation complète de la table, d'optimiser les opérations de jointure et d'améliorer la lisibilité du code.

    Comment créer une nouvelle connexion à MySQL dans Navicat Comment créer une nouvelle connexion à MySQL dans Navicat Apr 09, 2025 am 07:21 AM

    Vous pouvez créer une nouvelle connexion MySQL dans NAVICAT en suivant les étapes: ouvrez l'application et sélectionnez une nouvelle connexion (CTRL N). Sélectionnez "MySQL" comme type de connexion. Entrez l'adresse Hostname / IP, le port, le nom d'utilisateur et le mot de passe. (Facultatif) Configurer les options avancées. Enregistrez la connexion et entrez le nom de la connexion.

    Comment ouvrir phpmyadmin Comment ouvrir phpmyadmin Apr 10, 2025 pm 10:51 PM

    Vous pouvez ouvrir PHPMYADMIN via les étapes suivantes: 1. Connectez-vous au panneau de configuration du site Web; 2. Trouvez et cliquez sur l'icône PHPMYADMIN; 3. Entrez les informations d'identification MySQL; 4. Cliquez sur "Connexion".

    Comment exécuter SQL dans Navicat Comment exécuter SQL dans Navicat Apr 08, 2025 pm 11:42 PM

    Étapes pour effectuer SQL dans NAVICAT: Connectez-vous à la base de données. Créez une fenêtre d'éditeur SQL. Écrivez des requêtes ou des scripts SQL. Cliquez sur le bouton Exécuter pour exécuter une requête ou un script. Affichez les résultats (si la requête est exécutée).

    Navicat se connecte au code et à la solution d'erreur de base de données Navicat se connecte au code et à la solution d'erreur de base de données Apr 08, 2025 pm 11:06 PM

    Erreurs et solutions courantes Lors de la connexion aux bases de données: nom d'utilisateur ou mot de passe (erreur 1045) Blocs de pare-feu Connexion (erreur 2003) Délai de connexion (erreur 10060) Impossible d'utiliser la connexion à socket (erreur 1042) Erreur de connexion SSL (erreur 10055) Trop de connexions Résultat de l'hôte étant bloqué (erreur 1129)

    See all articles