php get, zufällige Datensätze und die Zurück-Taste
-
21-09-2019 - |
Frage
Meine Website verfügt über eine Bibliothek voller Spiele, Nationen, Spiel-Szenarien etc.
library.php
gegeben ein type=___
& id=___
zum Beispiel library.php?type=scenario&id=ABCD001
library.php
speichert die id
zu einer Session-Variablen und lädt ein zum type
entsprechenden umfassen
Das alles funktioniert nur Dandy. Nun wollte ich meine Benutzer die Möglichkeit, Ziehen eines zufälligen Szenario geben. Um dies zu erreichen, habe ich eine besondere id
an die Logik innerhalb lib-scenario.php
(das sind), so dass dann gegeben, wenn library.php?type=scenario&id=random
die umfassen kennt eine alternative Abfrage für einen zufälligen Datensatz zu laufen, anstatt für die eigentliche id
Das funktioniert auch nur Dandy ... es sei denn, jemand die Random Scenario
Taste zwei + Mal in Folge trifft, und beschließt, dass die vorherige Zufallsszenario Art und Weise kühler wurde, ich will stark gehen < > zurück , um das.
Da die http-Adresse immer egal directory/library.php?type=scenario&id=random
, wie oft Sie Random Scenario
klicken, sobald Sie klicken zurück auf die letzte Seite mit einer alternativen Adresse genommen werden werden Sie besucht haben.
Wenn Sie also auf der Home
Seite beginnen, und Hit Random Scenario
35 mal, dann die 34. man entscheiden, war das, was man wollte und BACK
klicken Sie wieder auf die Home
Seite gestellt werden.
Ich muss zugeben, das war kein Problem, das ich erwartet hatte. Einer meiner Tester war der erste, den Drang zu Back-up im Zufalls Szenario Strom haben, und hier sind wir.
Wie kann ich Backup-Funktionalität zu meinem Skript?
Lösung
Machen Sie die 'Random Scenario' Button Link einfach auf eine tatsächliche (aber zufällig) Szenario-ID. Sie werden wahrscheinlich diese mit einer SQL-Abfrage erstellen müssen alle IDs Ihrer Szenarien zu erhalten.
$result = mysql_query("SELECT id FROM scenarios");
while ($row = mysql_fetch_row($result)) {
$ids[] = $row[0];
}
$randomid = array_rand($ids);
Button:
<a href="directory/library.php?type=scenario&id=<?php echo $randomid; ?>Random Scenario</a>
Wenn Ihr Szenario-IDs alle aufeinander folgenden Zahlen sind, können Sie einfach verwenden Sie diese stattdessen:
$randomid = rand($min, $max);
Andere Tipps
Sie können dieses Problem lösen, indem für das Szenario auf die kanonische URL umleiten, d.h .: id = zufällige Umleitungen id = A92831 oder was auch immer ausgewählt wurde. die endgültige URL wird in der Geschichte gespeichert werden, anstatt die id = zufällige URL.