


Bagaimana Vue+ElementUI melaksanakan fungsi paging untuk menanyakan data mysql
1. Masalah
Apabila terdapat banyak data dalam pangkalan data, anda perlu menanyakan sebahagian sahaja pada satu masa untuk melegakan tekanan pada pelayan dan halaman. Di sini kami menggunakan komponen Penomboran elementui
dan pernyataan mysql
limit
untuk melaksanakan pertanyaan paging data mysql.
Gambar berikut ialah gaya halaman muka surat yang paling asas:
Sudah tentu, acara yang sepadan perlu diperkenalkan kepada laksanakan perubahan halaman. Hanya tanya pangkalan data.
2. Selesaikan
2.1 Komponen halaman
<el-pagination background layout="prev, pager, next" :page-size="8" :total="total" :current-page="pageNum" @current-change="handleCurrentChange"> </el-pagination>
data
: Mulakan jumlah bilangan item data (total
) ialah 1, pageNum
iaitu nombor halaman semasa ialah halaman pertama.
2.2 Fungsi untuk mendapatkan data pangkalan data: getData():
Parameternya ialah offset
, limit
, minta data daripada bahagian belakang , dijelaskan kemudian. Parameter siri qs digunakan di sini. Anda boleh rujuk blog saya yang lain: Vue + ElementUI + Viewer
Gambar tidak boleh dipratonton selepas membelok halaman Masalah komunikasi tak segerak komponen induk dan anak Vue. Fungsi qs dijelaskan di dalamnya.
getData(offset,limit){ this.axios.post('/php/select.php', qs.stringify({ offset: offset, limit: limit, type: '失物招领' }), { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).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 Halaman dimuatkan dan data halaman pertama perlu diminta
created () { this.getData(0,8); },
Perubahan halaman mencetuskan fungsi handleCurrentChange()
, iaitu mengklik pada pusingan halaman, di mana Parameter val ialah nombor halaman semasa, gunakan Parameter baharu,
panggil getData untuk menanyakan data pada halaman yang berbeza:
handleCurrentChange(val){ this.list = [] //清空上一页数据 this.getData((val-1)*8,8); }
Berikut ialah data hujung belakang: php + mysqlphp + mysql<br>
Kini terdapat sejumlah 10 keping data dalam jadual data:
Halaman hadapan getData
Diminta select.php
Fail
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['type']; //获取前端的参数 开始和结束number if ( !isset( $_POST['offset'] ) ) { echo 0; exit(); }; $offset = ( int )$_POST['offset']; if ( !isset( $_POST['limit'] ) ) { echo 0; exit(); }; $limit = ( int )$_POST['limit']; //分页查询数据库 $sql = "SELECT * FROM posts where type='$type' order by id desc LIMIT $limit OFFSET $offset"; $result = $conn->query($sql); $sqlGetCount = "SELECT COUNT(*) cnt FROM posts where type='$type'"; $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('data'=>$arr),array('total'=>(int)$rescnt['cnt']))); } else { echo 0; } mysqli_close( $conn ); ?>
Di sini kami menggunakan mysql
's limit
untuk bertanya hanya sebahagian daripada data pada satu masa, dan parameter offset
dan limit
.
Pernyataan SQL:
"SELECT * FROM posts where type='$type' order by id desc LIMIT $limit OFFSET $offset"
3 Analisis
LIMIT $limit OFFSET $offset
di sini bermaksud daripada $offest
Bermula dari nilai, pertanyaan $limit
kepingan data.
Contohnya, $limit = 8, $offest = 0: bermaksud menanyakan 8 keping data pertama dalam pangkalan data, bermula dari 0 (tidak termasuk 0, indeks mysql bermula dari 0), Pertanyaan 8 item, iaitu, 1~8 keping data.
Apabila saya mengklik pada halaman kedua: mencetuskan fungsi handleCurrentChange()
:
Pada masa ini parameternya ialah val=2
, kemudian offest = 8
, limit = 8
.
Data ke-9 hingga ke-17 akan disoal Jika tiada data ke-17, semua data selepas data ke-9 akan dikembalikan. Sebagai contoh, pangkalan data saya pada masa ini hanya mempunyai 10 keping data, jadi keping ke-9 dan ke-10 data akan dikembalikan.
Pada masa yang sama, halaman tengah select.php mengembalikan jumlah bilangan data:
SELECT COUNT(*) cnt FROM posts where type='$type'
Halaman akhir hadapan memperoleh kepada total
(atribut this.total
terikat, iaitu jumlah bilangan item data). Pagination的total
Data akan dinomborkan secara automatik berdasarkan atribut:Pagination
. Sebagai contoh, jika jumlah yang dikembalikan oleh bahagian belakang ialah 10, ia akan dibahagikan kepada dua halaman. page-size="8"
Halaman dimuatkan: Oleh kerana saya mencari dalam susunan terbalik berdasarkan id, saya mendapat yang ke-3 ~10 keping data (jumlah 8 keping).
Klik halaman kedua atau butang pusing halaman: Dapatkan data pertama dan kedua.
Nota: Parameter anda mesti konsisten dengan atribut limit
Pagination
, yang bermaksud anda boleh bertanya satu halaman data pada satu masa. Dan page-size
ialah nombor halaman semasa. offset
Atas ialah kandungan terperinci Bagaimana Vue+ElementUI melaksanakan fungsi paging untuk menanyakan data mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Atribut asid termasuk atom, konsistensi, pengasingan dan ketahanan, dan merupakan asas reka bentuk pangkalan data. 1. Atomicity memastikan bahawa urus niaga sama ada berjaya atau gagal sepenuhnya. 2. Konsistensi memastikan pangkalan data tetap konsisten sebelum dan selepas transaksi. 3. Pengasingan memastikan bahawa urus niaga tidak mengganggu satu sama lain. 4. Kegigihan memastikan data disimpan secara kekal selepas penyerahan transaksi.

MySQL bukan sahaja sistem pengurusan pangkalan data (DBMS) tetapi juga berkait rapat dengan bahasa pengaturcaraan. 1) Sebagai DBMS, MySQL digunakan untuk menyimpan, menyusun dan mengambil data, dan mengoptimumkan indeks dapat meningkatkan prestasi pertanyaan. 2) Menggabungkan SQL dengan bahasa pengaturcaraan, tertanam dalam Python, menggunakan alat ORM seperti SQLalChemy dapat memudahkan operasi. 3) Pengoptimuman prestasi termasuk pengindeksan, pertanyaan, caching, perpustakaan dan bahagian meja dan pengurusan transaksi.

MySQL menggunakan arahan SQL untuk menguruskan data. 1. Perintah asas termasuk pilih, masukkan, kemas kini dan padam. 2. Penggunaan lanjutan melibatkan fungsi gabungan, subquery dan agregat. 3. Kesilapan umum termasuk isu sintaks, logik dan prestasi. 4. Petua Pengoptimuman termasuk menggunakan indeks, mengelakkan Pilih* dan menggunakan had.

MySQL adalah sistem pengurusan pangkalan data relasi yang sesuai untuk menyimpan dan menguruskan data. Kelebihannya termasuk pertanyaan berprestasi tinggi, pemprosesan transaksi fleksibel dan jenis data yang kaya. Dalam aplikasi praktikal, MySQL sering digunakan dalam platform e-dagang, rangkaian sosial dan sistem pengurusan kandungan, tetapi perhatian harus dibayar kepada pengoptimuman prestasi, keselamatan data dan skalabilitas.

Hubungan antara SQL dan MySQL adalah hubungan antara bahasa standard dan pelaksanaan khusus. 1. SQL adalah bahasa standard yang digunakan untuk mengurus dan mengendalikan pangkalan data relasi, membolehkan penambahan data, penghapusan, pengubahsuaian dan pertanyaan. 2.MYSQL adalah sistem pengurusan pangkalan data tertentu yang menggunakan SQL sebagai bahasa pengendaliannya dan menyediakan penyimpanan dan pengurusan data yang cekap.

InnoDB menggunakan redolog dan undologs untuk memastikan konsistensi dan kebolehpercayaan data. 1. Pengubahsuaian halaman data rekod untuk memastikan pemulihan kemalangan dan kegigihan transaksi. 2.UNDOLOGS merekodkan nilai data asal dan menyokong penggantian transaksi dan MVCC.

Metrik utama untuk menjelaskan arahan termasuk jenis, kunci, baris, dan tambahan. 1) Jenis mencerminkan jenis akses pertanyaan. Semakin tinggi nilai, semakin tinggi kecekapan, seperti const adalah lebih baik daripada semua. 2) Kunci memaparkan indeks yang digunakan, dan null menunjukkan tiada indeks. 3) Baris menganggarkan bilangan baris yang diimbas, yang mempengaruhi prestasi pertanyaan. 4) Tambahan memberikan maklumat tambahan, seperti menggunakanFilesort meminta bahawa ia perlu dioptimumkan.

MenggunakanTemary menunjukkan bahawa keperluan untuk membuat jadual sementara dalam pertanyaan MySQL, yang biasanya dijumpai di Orderby menggunakan lajur yang berbeza, GroupBy, atau tidak diindeks. Anda boleh mengelakkan berlakunya indeks dan menulis semula pertanyaan dan meningkatkan prestasi pertanyaan. Khususnya, apabila menggunakan pembelian muncul dalam menjelaskan output, ini bermakna MySQL perlu membuat jadual sementara untuk mengendalikan pertanyaan. Ini biasanya berlaku apabila: 1) deduplikasi atau pengelompokan apabila menggunakan yang berbeza atau kumpulan; 2) Susun apabila Orderby mengandungi lajur bukan indeks; 3) Gunakan subquery kompleks atau menyertai operasi. Kaedah Pengoptimuman termasuk: 1) Orderby dan GroupB


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

SublimeText3 versi Inggeris
Disyorkan: Versi Win, menyokong gesaan kod!

ZendStudio 13.5.1 Mac
Persekitaran pembangunan bersepadu PHP yang berkuasa