目次
2.1 ページング コンポーネント
2.2 データベースデータを取得する関数: getData():
2.3 ページがロードされ、最初のページのデータを要求する必要があります。
ホームページ データベース mysql チュートリアル Vue+ElementUI が MySQL データをクエリするためのページング関数を実装する方法

Vue+ElementUI が MySQL データをクエリするためのページング関数を実装する方法

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

    1. 問題

    データベース内に大量のデータがある場合、一度にクエリを実行できるのはその一部のみです。サーバーとページへの負担を軽減します。ここでは、elementui の Pagination コンポーネントと mysqllimit ステートメントを使用して、mysql データのページング クエリを実装します。

    次の図は最も基本的なページング スタイルです:

    Vue+ElementUI が MySQL データをクエリするためのページング関数を実装する方法

    もちろん、対応するイベントを導入する必要があります。ページの変更はデータベースにクエリを実行するだけです。

    Vue+ElementUI が MySQL データをクエリするためのページング関数を実装する方法

    2.

    2.1 ページング コンポーネント

    <el-pagination
            background
            layout="prev, pager, next"
            :page-size="8"
            :total="total"
            :current-page="pageNum"
            @current-change="handleCurrentChange">
    </el-pagination>
    ログイン後にコピー

    data を解決します: の総数を初期化します。データ項目 (total) は 1、pageNum は現在のページ番号が最初のページであることを意味します。

    Vue+ElementUI が 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)
          })
        }
    ログイン後にコピー

    2.3 ページがロードされ、最初のページのデータを要求する必要があります。

    created () {
        this.getData(0,8);
      },
    ログイン後にコピー

    ページ変更により handleCurrentChange() 関数がトリガーされます。つまり、クリックしてページをめくります。val パラメータは現在のページ番号です。新しいパラメータを使用します。

    getData を呼び出して、別のページのデータをクエリします。

    handleCurrentChange(val){
          this.list = [] //清空上一页数据
          this.getData((val-1)*8,8);
        }
    ログイン後にコピー

    以下は裏面です。 -end data: php mysql<br/>

    データ テーブルには合計 10 個のデータがあります:

    Vue+ElementUI が MySQL データをクエリするためのページング関数を実装する方法

    フロントエンドgetDataリクエスト select.php ファイル

    select.php:

    ここでは

    mysql の <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>&lt;?php $servername = &quot;localhost&quot;; $username = &quot;用户名&quot;; $password = &quot;密码&quot;; $dbname = &quot;数据库名称&quot;; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn-&gt;connect_error) { die(&quot;连接失败: &quot; . $conn-&gt;connect_error); } $type = $_POST[&amp;#39;type&amp;#39;]; //获取前端的参数 开始和结束number if ( !isset( $_POST[&amp;#39;offset&amp;#39;] ) ) { echo 0; exit(); }; $offset = ( int )$_POST[&amp;#39;offset&amp;#39;]; if ( !isset( $_POST[&amp;#39;limit&amp;#39;] ) ) { echo 0; exit(); }; $limit = ( int )$_POST[&amp;#39;limit&amp;#39;]; //分页查询数据库 $sql = &quot;SELECT * FROM posts where type=&amp;#39;$type&amp;#39; order by id desc LIMIT $limit OFFSET $offset&quot;; $result = $conn-&gt;query($sql); $sqlGetCount = &quot;SELECT COUNT(*) cnt FROM posts where type=&amp;#39;$type&amp;#39;&quot;; $rescnt = $conn-&gt;query($sqlGetCount); $rescnt = $rescnt-&gt;fetch_assoc(); $arr = array(); if ($result-&gt;num_rows &gt; 0) { while ( $row = $result-&gt;fetch_assoc() ) { array_push( $arr, $row ); } //echo json_encode( $arr, JSON_UNESCAPED_UNICODE ); echo json_encode(array_merge(array(&amp;#39;data&amp;#39;=&gt;$arr),array(&amp;#39;total&amp;#39;=&gt;(int)$rescnt[&amp;#39;cnt&amp;#39;]))); } else { echo 0; } mysqli_close( $conn ); ?&gt;</pre><div class="contentsignin">ログイン後にコピー</div></div>## が使用されています。 #limit は、一度にデータの一部のみのクエリを実装し、パラメータ offsetlimit はフロントエンドから渡されます。

    sql ステートメント:

    "SELECT * FROM posts where type=&#39;$type&#39;  order by id desc LIMIT $limit OFFSET $offset"
    ログイン後にコピー

    3.


    の分析はこちら

    LIMIT $limit OFFSET $offset は、$offest の値から開始して、 $limit 個のデータをクエリすることを意味します。

    たとえば、$limit = 8, $offest = 0: は、データベース内の最初の 8 個のデータを 0 からクエリすることを意味します (0 を除く、mysql インデックスが開始されます)。 0から)、8項目、つまり1~8個のデータをクエリします。
    2 ページ目をクリックすると: Trigger handleCurrentChange() Function:

    Vue+ElementUI が MySQL データをクエリするためのページング関数を実装する方法

    このときのパラメータ

    val=2、次に offest = 8limit = 89 番目から 17 番目のデータを問い合わせます 17 番目のデータがない場合は、9 番目以降のデータをすべて返します。たとえば、データベースには現在 10 個のデータしかないため、9 番目と 10 番目のデータが返されます。

    同時に、select.php のページはデータの合計数を返します。

    SELECT COUNT(*) cnt FROM posts where type=&#39;$type&#39;
    ログイン後にコピー

    Vue+ElementUI が MySQL データをクエリするためのページング関数を実装する方法

    フロントエンド ページの取得

    total 値は this.total に割り当てられます (データの合計数である Pagination の total 属性にバインドされています)アイテム)。 Pagination:page-size="8"プロパティに従って、データは自動的にページ付けされます。たとえば、バックエンドによって返される合計が 10 の場合、2 ページに分割されます。

    Vue+ElementUI が MySQL データをクエリするためのページング関数を実装する方法

    4. 結果


    ページが読み込まれます: ID に基づいて逆の順序でクエリを実行したため、 3番目~10個のデータ(合計8個)を取得しました。

    Vue+ElementUI が MySQL データをクエリするためのページング関数を実装する方法

    2 番目のページまたはページめくりボタンをクリックします。 1 番目と 2 番目のデータを取得します。

    Vue+ElementUI が MySQL データをクエリするためのページング関数を実装する方法

    注: limit パラメータは、Pagination## の page-size と一致している必要があります。 #属性は一貫しています。つまり、一度に 1 ページのデータがクエリされます。 offset は現在のページ番号です。

    以上がVue+ElementUI が MySQL データをクエリするためのページング関数を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    AI Hentai Generator

    AI Hentai Generator

    AIヘンタイを無料で生成します。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    MySQL:初心者向けのデータ管理の容易さ MySQL:初心者向けのデータ管理の容易さ Apr 09, 2025 am 12:07 AM

    MySQLは、インストールが簡単で、強力で管理しやすいため、初心者に適しています。 1.さまざまなオペレーティングシステムに適した、単純なインストールと構成。 2。データベースとテーブルの作成、挿入、クエリ、更新、削除などの基本操作をサポートします。 3.参加オペレーションやサブクエリなどの高度な機能を提供します。 4.インデックス、クエリの最適化、テーブルパーティション化により、パフォーマンスを改善できます。 5。データのセキュリティと一貫性を確保するために、バックアップ、リカバリ、セキュリティ対策をサポートします。

    NAVICATでデータベースパスワードを取得できますか? NAVICATでデータベースパスワードを取得できますか? Apr 08, 2025 pm 09:51 PM

    NAVICAT自体はデータベースパスワードを保存せず、暗号化されたパスワードのみを取得できます。解決策:1。パスワードマネージャーを確認します。 2。NAVICATの「パスワードを記憶する」機能を確認します。 3.データベースパスワードをリセットします。 4.データベース管理者に連絡してください。

    Navicatプレミアムの作成方法 Navicatプレミアムの作成方法 Apr 09, 2025 am 07:09 AM

    NAVICATプレミアムを使用してデータベースを作成します。データベースサーバーに接続し、接続パラメーターを入力します。サーバーを右クリックして、[データベースの作成]を選択します。新しいデータベースの名前と指定された文字セットと照合を入力します。新しいデータベースに接続し、オブジェクトブラウザにテーブルを作成します。テーブルを右クリックして、データを挿入してデータを挿入します。

    MariadBのNAVICATでデータベースパスワードを表示する方法は? MariadBのNAVICATでデータベースパスワードを表示する方法は? Apr 08, 2025 pm 09:18 PM

    Passwordが暗号化された形式で保存されているため、MariadbのNavicatはデータベースパスワードを直接表示できません。データベースのセキュリティを確保するには、パスワードをリセットするには3つの方法があります。NAVICATを介してパスワードをリセットし、複雑なパスワードを設定します。構成ファイルを表示します(推奨されていない、高リスク)。システムコマンドラインツールを使用します(推奨されません。コマンドラインツールに習熟する必要があります)。

    MySQL:簡単な学習のためのシンプルな概念 MySQL:簡単な学習のためのシンプルな概念 Apr 10, 2025 am 09:29 AM

    MySQLは、オープンソースのリレーショナルデータベース管理システムです。 1)データベースとテーブルの作成:createdatabaseおよびcreateTableコマンドを使用します。 2)基本操作:挿入、更新、削除、選択。 3)高度な操作:参加、サブクエリ、トランザクション処理。 4)デバッグスキル:構文、データ型、およびアクセス許可を確認します。 5)最適化の提案:インデックスを使用し、選択*を避け、トランザクションを使用します。

    NAVICATでSQLを実行する方法 NAVICATでSQLを実行する方法 Apr 08, 2025 pm 11:42 PM

    NAVICATでSQLを実行する手順:データベースに接続します。 SQLエディターウィンドウを作成します。 SQLクエリまたはスクリプトを書きます。 [実行]ボタンをクリックして、クエリまたはスクリプトを実行します。結果を表示します(クエリが実行された場合)。

    NAVICATは、MySQL/Mariadb/PostgreSQLおよびその他のデータベースに接続できません NAVICATは、MySQL/Mariadb/PostgreSQLおよびその他のデータベースに接続できません Apr 08, 2025 pm 11:00 PM

    NAVICATがデータベースとそのソリューションに接続できない一般的な理由:1。サーバーの実行ステータスを確認します。 2。接続情報を確認します。 3.ファイアウォール設定を調整します。 4.リモートアクセスを構成します。 5.ネットワークの問題のトラブルシューティング。 6.許可を確認します。 7.バージョンの互換性を確保します。 8。他の可能性のトラブルシューティング。

    NavicatでMySQLへの新しい接続を作成する方法 NavicatでMySQLへの新しい接続を作成する方法 Apr 09, 2025 am 07:21 AM

    手順に従って、NAVICATで新しいMySQL接続を作成できます。アプリケーションを開き、新しい接続(CTRL N)を選択します。接続タイプとして「mysql」を選択します。ホスト名/IPアドレス、ポート、ユーザー名、およびパスワードを入力します。 (オプション)Advanced Optionsを構成します。接続を保存して、接続名を入力します。

    See all articles