So verwenden Sie PHP, um beim Paging zufällige, nicht doppelte Daten zu erhalten

PHPz
Freigeben: 2023-04-21 09:18:22
Original
767 Leute haben es durchsucht

PHP ist eine in der Webentwicklung weit verbreitete Skriptsprache. Sie ist leistungsstark, einfach zu verwenden und effizient und wird häufig zum Erstellen verschiedener Webanwendungen verwendet. Bei der Entwicklung dieser Anwendungen ist es häufig erforderlich, Daten auf Seiten anzuzeigen und sicherzustellen, dass die Daten zufällig sind und sich nicht wiederholen, was besondere Aufmerksamkeit erfordert. In diesem Artikel wird erläutert, wie Sie mit PHP das Paging zufälliger, nicht doppelter Daten erreichen.

1. Implementierung von Paging

Paging ist eine gängige Methode zur Anzeige von Daten. Normalerweise teilen wir einen großen Datensatz in mehrere kleine Datenblöcke auf wird als Seite bezeichnet. Dies kann nicht nur die Anzeige erleichtern, sondern auch die Seitenladegeschwindigkeit verbessern. In PHP können wir das Schlüsselwort LIMIT verwenden, um Paging zu implementieren.

Das Folgende ist ein einfaches Paging-Codebeispiel:

<?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语句并获取数据
?>
Nach dem Login kopieren

Im obigen Code stellt $page_size die Datenmenge auf jeder Seite dar, $page_num stellt die aktuelle Seitennummer dar, und $start stellt die Startposition der aktuellen Seitendaten dar. Paging kann einfach mit dem Schlüsselwort LIMIT implementiert werden.

2. Erfassung zufälliger, nicht doppelter Daten

Wenn wir mehrere Daten aus einem großen Datensatz zufällig abrufen müssen, können wir die Funktion RAND() verwenden MySQL. Beispiel:

SELECT * FROM my_table ORDER BY RAND() LIMIT 10;
Nach dem Login kopieren

Der obige Code gibt an, dass 10 Daten zufällig aus der Tabelle my_table abgerufen werden. Da die Funktion RAND() verwendet wird, erfolgt jede Ausführung zufällig und die Daten werden nicht wiederholt. Allerdings ist es schwieriger, wenn diese Methode Paging erfordert, da die Ergebnisse jeder Ausführung unterschiedlich sind und vom Programm verarbeitet werden müssen, um Paging zu erreichen.

Das Folgende bietet eine Implementierungsidee:

1 Ermitteln Sie zunächst die Gesamtzahl der Zeilen des gesamten Datensatzes und speichern Sie sie in einer Variablen. Sie können den folgenden Code verwenden:

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

2. Berechnen Sie die Anzahl der abzurufenden Datenzeilen:

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

3. Führen Sie eine Schleife aus und führen Sie den folgenden Code aus, bis genügend Zeilen abgerufen werden : # 🎜🎜#

$start = rand(0, $count - 1);//生成随机起始点
$sql = "SELECT * FROM my_table LIMIT $start, $random_count";
//执行sql语句并获取数据
Nach dem Login kopieren
4. Deduplizieren und sortieren Sie die erhaltenen Daten nach dem Zufallsprinzip:

$data = array_unique($data);//去重
shuffle($data);//随机排序
Nach dem Login kopieren
5. Entfernen Sie einfach die erforderliche Anzahl von Zeilen aus den erhaltenen Daten.

Zeigen Sie abschließend die Daten auf der Seite an und implementieren Sie das Paging. Der vollständige Code lautet wie folgt:

<?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);//分页
//展示数据
?>
Nach dem Login kopieren
Auf diese Weise können Paging, zufällige und nicht doppelte Datenerfassung erreicht werden. Natürlich gibt es bei dieser Methode bestimmte Leistungsprobleme, da die Abfrageanweisung mehrmals ausgeführt werden muss. Wenn die Datenmenge also groß ist, kann dies die Leistung des Programms beeinträchtigen.

3. Zusammenfassung

Paging, zufällige und nicht-duplizierte Datenerfassung sind sehr häufige Anforderungen im Prozess der Webanwendungsentwicklung. Dies lässt sich leicht mit der in diesem Artikel beschriebenen Methode erreichen. Natürlich können im eigentlichen Entwicklungsprozess auch verschiedene Caching-Technologien, Datenbankoptimierung und andere Methoden kombiniert werden, um die Leistung des Programms weiter zu verbessern.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie PHP, um beim Paging zufällige, nicht doppelte Daten zu erhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage