سؤال

يحتوي موقعي على مكتبة مليئة بالألعاب ، والدول ، وسيناريوهات اللعبة ، إلخ.

library.php يعطى أ type=___ & id=___

علي سبيل المثال library.php?type=scenario&id=ABCD001

library.php ينقذ id إلى متغير جلسة ويحمل تضمينًا مناسبًا ل type

كل هذا يعمل فقط dandy. الآن ، أردت أن أعطي المستخدمين خيار سحب سيناريو عشوائي. للقيام بذلك ، أضفت خاصًا id إلى المنطق داخل lib-scenario.php (بما في ذلك) بحيث إذا أعطيت library.php?type=scenario&id=random يشمل Knows تشغيل استعلام بديل لسجل عشوائي بدلاً من الفعلي id

هذا يعمل أيضا فقط dandy ... ما لم شخص ما يضرب Random Scenario الزر مرتين على التوالي ، ويقرر ذلك كان السيناريو العشوائي السابق أكثر برودة ، أريد أن أذهب الى الخلف إلى ذلك.

لأن عنوان HTTP دائمًا directory/library.php?type=scenario&id=random بغض النظر عن عدد المرات التي تنقر فيها Random Scenario, ، بمجرد النقر فوقك مرة أخرى ، ستُنقل إلى الصفحة الأخيرة مع عنوان بديل قمت بزيارته.

لذا ، إذا بدأت في Home الصفحة ، وضرب Random Scenario 35 مرة ، ثم قرر الـ 34 هو ما تريده وانقر فوق BACK, ، سوف تعيد إلى Home صفحة.

يجب أن أعترف أن هذه لم تكن مشكلة كنت أتوقعها. كان أحد المختبرين أول من كان لديه الرغبة في النسخ الاحتياطي في تيار السيناريو العشوائي وهنا نحن.

كيف يمكنني إضافة وظائف النسخ الاحتياطي إلى البرنامج النصي الخاص بي؟

هل كانت مفيدة؟

المحلول

قم بعمل زر "السيناريو العشوائي" ببساطة ارتباط بمعرف السيناريو الفعلي (ولكن العشوائي). من المحتمل أن تضطر إلى بناء هذا مع استعلام SQL للحصول على كل هوية السيناريوهات الخاصة بك.

$result = mysql_query("SELECT id FROM scenarios");
while ($row = mysql_fetch_row($result)) {
    $ids[] = $row[0];
}
$randomid = array_rand($ids);

زر:

<a href="directory/library.php?type=scenario&id=<?php echo $randomid; ?>Random Scenario</a>

إذا كانت معرف السيناريو الخاص بك كلها أرقام متتالية ، فيمكنك ببساطة استخدام هذا بدلاً من ذلك:

$randomid = rand($min, $max);

نصائح أخرى

يمكنك حل هذا عن طريق إعادة توجيه إلى عنوان URL الكنسي للسيناريو ، أي: id = إعادة توجيه عشوائي إلى ID = A92831 أو أي شيء تم اختياره. سيتم تخزين عنوان URL النهائي في التاريخ ، بدلاً من ID = عنوان URL العشوائي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top