1. 問題データベースに大量のデータがある場合は、サーバーとページへの負荷を軽減するために、毎回そのデータの一部だけをクエリする必要があります。ここでは、 次の図は最も基本的なページング スタイルです。 もちろん、ページが変更されたときにデータベースを照会するには、対応するイベントを導入する必要があります。 2. 解決策2.1 ページングコンポーネント<el-ページネーション 背景 レイアウト="前へ、ページャ、次へ" :ページサイズ="8" :total="合計" :current-page="ページ番号" @current-change="現在の変更を処理する"> </el-pagination>
2.2 データベースデータを取得する関数: getData():パラメータは getData(オフセット,制限){ this.axios.post('/php/select.php', qs.stringify({ オフセット: オフセット、 制限: 制限、 タイプ: 「落とし物」 }), { ヘッダー: { 'Content-Type': 'application/x-www-form-urlencoded' } }).then((res) => { res.data === 0の場合{ 合計 = 0; このリスト = []; 戻る; } this.total = res.data.total this.list = res.data.data this.loading = false }).catch((エラー) => { this.$message.error(err) }) } 2.3 ページが読み込まれ、最初のページのデータを要求する必要がある作成された(){ 0 を返します。 }, ページの変更により、 異なるページのデータを照会するには、getData を呼び出します。 現在の変更を処理する(val){ this.list = [] // 前のページのデータをクリアします this.getData((val-1)*8,8); } 以下はバックエンドデータです: 現在、データ テーブルには 10 個のレコードがあります。 フロントエンドの 選択php: <?php $servername = "localhost"; $username = "ユーザー名"; $password = "パスワード"; $dbname = "データベース名"; // 接続を作成します $conn = new mysqli($servername, $username, $password, $dbname); // 接続を確認する ($conn->connect_error) の場合 { die("接続に失敗しました: " . $conn->connect_error); } $type = $_POST['type']; //フロントエンドパラメータの開始番号と終了番号を取得します if ( !isset( $_POST['offset'] ) ) { エコー0; 出口(); }; $offset = ( int )$_POST['offset']; if ( !isset( $_POST['limit'] ) ) { エコー0; 出口(); }; $limit = ( int )$_POST['limit']; //ページネーションクエリデータベース $sql = "SELECT * FROM posts where type='$type' order by id desc LIMIT $limit OFFSET $offset"; $result = $conn->query($sql); $sqlGetCount = "type='$type' の posts から COUNT(*) cnt を選択"; $rescnt = $conn->クエリ($sqlGetCount); $rescnt = $rescnt->fetch_assoc(); $arr = 配列(); ($result->num_rows > 0)の場合{ $row = $result->fetch_assoc() の間 { 配列をプッシュします($arr, $row); } //json_encode($arr, JSON_UNESCAPED_UNICODE) をエコーします。 echo json_encode(array_merge(array('data'=>$arr),array('total'=>(int)$rescnt['cnt']))); } それ以外 { エコー0; } mysqli_close($conn); ?> ここでは、 SQL ステートメント: 「SELECT * FROM posts where type='$type' order by id desc LIMIT $limit OFFSET $offset」 3. 分析ここで、 たとえば、$limit = 8、$offest = 0:は、データベース内の 0 から始まる最初の 8 つのデータ (0 は含みません。MySQL インデックスは 0 から始まります) を照会し、8 つのデータ、つまり 1 から 8 までのデータを照会することを意味します。 このとき、パラメータ 同時に、select.php はデータエントリの合計数を返します。 type='$type' の投稿から COUNT(*) cnt を選択 フロントエンド ページは 4. 結果 注: これで、Vue+ElementUI によるページング クエリの実装 - mysql データに関するこの記事は終了です。Vue+ElementUI によるページング クエリの実装に関する関連コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: CSS3 で虫眼鏡効果を模倣するいくつかの方法の原理の分析
会社の開発者がテスト環境で挿入ステートメントを実行すると、正常に実行されるまでに 10 秒以上かかり...
目次ブロックレベル関数オブジェクトのプロトタイプを直接変更すると呼び出された人発信者評価ブロックレベ...
CSS のアニメーション部分は JS によってブロックされますが、transform のアニメーショ...
CentOS 7 では、次のようなコマンドを使用してホスト ポートをコンテナー ポートにマッピングす...
この記事では、クリックして切り替える認証コードと認証を実装するためのJavaScriptの具体的なコ...
この記事では、指定された日付間のカウントダウンを実装するためのVueの具体的なコードを例として紹介し...
目次背景は次のとおりです。何が起こるでしょうか?背景は次のとおりです。実際の開発では、ネットワークの...
123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...
<br />改行タグの使用<br>改行タグ<br>は終わりのない...
目次WebSocketを使用する理由ソケット.ioオープンソースプロジェクト効果プレビューアプリイン...
目次執筆の背景プロジェクトの説明事前準備注記執筆の背景以前のプロジェクトではTencent Maps...
この記事では、カスタムツリーコンポーネントを再帰的に実装するVueの具体的なコードを参考までに共有し...
mysql 5.7.19 winx64のインストールチュートリアルは以下のように記録され、みんなと...
Apache Log4j2 が核レベルの脆弱性を報告し、スタックリーダーの友人たちは大騒ぎになりまし...
robots.txt の基本的な紹介Robots.txt はプレーンテキスト ファイルであり、Web...