Penomboran MySQL PHP dengan Susunan Rawak
Apabila melaksanakan fungsi carian dengan penomboran pada tapak web, adalah penting untuk menangani isu yang berkaitan dengan rawak susunan keputusan. Artikel ini menyediakan penyelesaian kepada cabaran berikut:
-
Tidak termasuk hasil yang dilihat sebelum ini pada halaman berikutnya:
Untuk mengelakkan hasil yang telah dilihat daripada muncul semula, penyelesaian yang cekap ingatan adalah dengan gunakan teknik yang dipanggil penomboran dengan senarai pengecualian. Ini melibatkan penyimpanan ID hasil yang dipaparkan dalam sesi atau pangkalan data dan mengecualikannya daripada pertanyaan berikutnya.
-
Memastikan set keputusan yang berbeza pada halaman pertama:
Untuk menjamin unik set hasil pada halaman pertama, anda boleh menggunakan fungsi RAND() dengan nilai benih yang tetap. Dengan menukar nilai benih ini selepas setiap lawatan, anda boleh memastikan pesanan baharu tanpa menjejaskan pengisihan rawak.
-
Pelaksanaan praktikal nilai benih:
Dalam MySQL, anda boleh menggunakan RAND( SEED), di mana SEED ialah integer yang ditentukan pengguna. Dengan menetapkan benih kepada nilai yang berbeza setiap kali pengguna melawat halaman pertama, anda boleh mencapai susunan rawak lagi berbeza.
Contoh:
<code class="php"><?php
session_start();
// Generate a unique seed value for the first page
if (!isset($_SESSION['seed'])) {
$_SESSION['seed'] = rand(1, 1000);
}
// Exclude previously seen results
$excludedIds = array();
if (isset($_SESSION['seenResults'])) {
$excludedIds = $_SESSION['seenResults'];
}
// Query with random ordering and exclusion
$query = "SELECT * FROM table WHERE id NOT IN ('" . implode("', '", $excludedIds) . "') ORDER BY RAND(" . $_SESSION['seed'] . ") LIMIT 10";</code>
Salin selepas log masuk
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Penomboran dengan Susunan Rawak dalam PHP dan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!