Rumah >pembangunan bahagian belakang >masalah PHP >Cara menggunakan PHP untuk mencapai data rawak bukan pendua dalam halaman

Cara menggunakan PHP untuk mencapai data rawak bukan pendua dalam halaman

PHPz
PHPzasal
2023-04-21 09:06:33804semak imbas

PHP ialah bahasa skrip yang digunakan secara meluas dalam pembangunan web Ia berkuasa, mudah digunakan dan cekap, dan digunakan secara meluas untuk membina pelbagai aplikasi web. Apabila membangunkan aplikasi ini, selalunya perlu untuk memaparkan data dalam halaman, dan untuk memastikan bahawa data adalah rawak dan tidak berulang, yang memerlukan perhatian khusus. Artikel ini akan memperkenalkan cara menggunakan PHP untuk mencapai data bukan pendua rawak halaman.

1. Pelaksanaan paging

Paging ialah cara biasa untuk memaparkan data Biasanya kami membahagikan set data yang besar kepada beberapa blok data kecil, dan setiap blok data kecil dipanggil Satu halaman. Ini bukan sahaja dapat memudahkan paparan, tetapi juga meningkatkan kelajuan memuatkan halaman. Dalam PHP, kita boleh menggunakan kata kunci LIMIT untuk melaksanakan paging.

Berikut ialah contoh kod halaman mudah:

<?php
$page_size = 10;
$page_num = isset($_GET[&#39;page_num&#39;]) ? $_GET[&#39;page_num&#39;] : 1;
$start = ($page_num - 1) * $page_size;
$sql = "SELECT * FROM my_table LIMIT $start, $page_size";
//执行sql语句并获取数据
?>

Dalam kod di atas, $page_size mewakili jumlah data pada setiap halaman, $page_num mewakili nombor halaman semasa dan $ mula mewakili halaman semasa Kedudukan permulaan data. Paging boleh dilaksanakan dengan mudah menggunakan kata kunci LIMIT.

2. Mendapatkan data rawak bukan pendua

Apabila kita perlu mendapatkan beberapa keping data secara rawak daripada set data yang besar, kita boleh menggunakan fungsi RAND() dalam MySQL. Contohnya:

SELECT * FROM my_table ORDER BY RAND() LIMIT 10;

Kod di atas menunjukkan bahawa 10 keping data diperoleh secara rawak daripada jadual my_table Memandangkan fungsi RAND() digunakan, setiap pelaksanaan adalah rawak dan data tidak diulang. Namun, lebih sukar apabila kaedah ini memerlukan paging, kerana hasil setiap pelaksanaan adalah berbeza dan perlu diproses oleh program untuk mencapai paging.

Yang berikut memberikan idea pelaksanaan:

1 Mula-mula dapatkan jumlah baris keseluruhan set data dan simpannya ke pembolehubah. Anda boleh menggunakan kod berikut:

$sql_count = "SELECT COUNT(*) AS count FROM my_table";
//执行sql语句并获取总行数
$count = $result['count'];

2 Kira bilangan baris data yang akan diperolehi:

$random_count = $page_size * 3;//获取3页数据的总行数

3 Gelung dan laksanakan kod berikut sehingga cukup baris diperoleh :

$start = rand(0, $count - 1);//生成随机起始点
$sql = "SELECT * FROM my_table LIMIT $start, $random_count";
//执行sql语句并获取数据

4 Nyahduplikasi dan mengisih data yang diperoleh secara rawak:

$data = array_unique($data);//去重
shuffle($data);//随机排序

5. Hanya keluarkan bilangan baris yang diperlukan daripada data yang diperolehi.

Akhir sekali, paparkan data pada halaman dan laksanakan halaman. Kod lengkap adalah seperti berikut:

<?php
$page_size = 10;//每页数据量
$page_num = isset($_GET[&#39;page_num&#39;]) ? $_GET[&#39;page_num&#39;] : 1;//当前页数
$random_count = $page_size * 3;//获取3页的数据量
$start = ($page_num - 1) * $page_size;//分页起始行数
$sql_count = "SELECT COUNT(*) AS count FROM my_table";//获取总行数的sql语句
$sql = "SELECT * FROM my_table LIMIT $start, $random_count";//获取随机数据的sql语句
//执行sql语句并获取数据
//计算总行数
$count = $result_count[&#39;count&#39;];
$data = array();
while (count($data) < $random_count) {
    $start = rand(0, $count - 1);//生成随机起始点
    $sql = "SELECT * FROM my_table LIMIT $start, $random_count";
    //执行sql语句并获取数据
    $data = array_merge($data, $result_data);
}
$data = array_unique($data);//去重
shuffle($data);//随机排序
$data_page = array_slice($data, ($page_num - 1) * $page_size, $page_size);//分页
//展示数据
?>

Dengan cara ini, pemerolehan data paging, rawak dan bukan pendua boleh dicapai. Sudah tentu, terdapat isu prestasi tertentu dengan kaedah ini, kerana pernyataan pertanyaan perlu dilaksanakan beberapa kali, jadi apabila jumlah data adalah besar, ia mungkin menjejaskan prestasi program.

3. Ringkasan

Paging, rawak dan pemerolehan data bukan pendua adalah keperluan yang sangat biasa dalam proses pembangunan aplikasi web. Ini boleh dicapai dengan mudah melalui kaedah yang diterangkan dalam artikel ini. Sudah tentu, dalam proses pembangunan sebenar, pelbagai teknologi caching, pengoptimuman pangkalan data dan kaedah lain juga boleh digabungkan untuk meningkatkan lagi prestasi program.

Atas ialah kandungan terperinci Cara menggunakan PHP untuk mencapai data rawak bukan pendua dalam halaman. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn