"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف يمكن الحفاظ على الترتيب العشوائي في ترقيم الصفحات في MySQL دون تكرار أو إصلاح نتائج الصفحة الأولى؟

كيف يمكن الحفاظ على الترتيب العشوائي في ترقيم الصفحات في MySQL دون تكرار أو إصلاح نتائج الصفحة الأولى؟

تم النشر بتاريخ 2024-11-07
تصفح:643

How to Maintain Random Ordering in MySQL Pagination without Duplicates or Fixed First Page Results?

ترقيم صفحات PHP MySQL مع ترتيب عشوائي

يمكن أن يشكل الحفاظ على ترتيب عشوائي في ترقيم صفحات MySQL تحديات عند السعي لمنع النتائج المكررة وضمان مجموعات مختلفة على الصفحة الأولى. فيما يلي حلول لهذه المخاوف:

1. منع النتائج المكررة

لاستبعاد النتائج التي تم عرضها مسبقًا على الصفحات اللاحقة، قم بزيادة استعلام SQL الخاص بك بمعيار الاستبعاد استنادًا إلى الصفوف التي تم جلبها مسبقًا. استخدم مصفوفة PHP لتخزين المحتوى الذي تم جلبه، ودمج الشروط في الاستعلام للاستبعاد:

$excludeIDs = []; // Array to store excluded IDs

$query = "SELECT * FROM table ";
if(!empty($excludeIDs)) {
    $query .= "WHERE id NOT IN (" . implode(",", $excludeIDs) . ") ";
}
$query .= "ORDER BY RAND() LIMIT 0,10;";

2. نتائج متباينة على الصفحة الأولى

نعم، يمكن استخدام ترقيم الصفحات بترتيب عشوائي عن طريق إدخال قيمة أولية إلى الدالة RAND(). من خلال تغيير البذرة (على سبيل المثال، بناءً على الوقت أو عنوان IP الخاص بالمستخدم)، يمكنك الحصول على مجموعات نتائج مختلفة في كل مرة.

3. استخدام RAND(SEED)

حدد قيمة أولية باستخدام RAND(SEED) للتأثير على الترتيب العشوائي. من خلال تعيين عدد صحيح ثابت كبذرة، يمكنك التحكم في تسلسل النتائج:

$seed = 521; // مثال لقيمة البذور

$query = "SELECT * FROM table ORDER BY RAND(" . $seed . ") LIMIT 0,10;";
بيان الافراج أعيد طبع هذه المقالة على: 1729727088 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3