Zufallszahlen von bis ohne doppelte
andreas
- php
0 luca0 Mulder0 Bernhard Mecl
Hallo,
ich habe was gebastelt, um eine Zufallszahl zu erhalten.
Ab der Zufallszahl übergebe ich dies als Position.
Da ich aus dem Bereich mir 3 Themen anzeigen möchte,
habe ich Limit auf 3 gesetzt.
$themen_check = mysql_query("SELECT count(bereich) FROM $table ");
$themen_gesamt = mysql_result($themen_check,0);
if($themen_gesamt != 0) {
mt_srand(time());
$themen_3 = mt_rand(0,$themen_gesamt-1);
$themen_list = @mysql_query("SELECT * FROM $table LIMIT $themen_3,3");
Problem hierbei ist,
habe ich nur 5 Themen und die Zufallszahl liegt bei 4,
dann kann ich keine 3 Themn mehr erhalten,
sondern nur noch 1 Thema.
Wie bekomme ich z.B. 3 Zufallszahlen aus 5 Themen.
Die Zahlen dürfen aber nicht doppelt vorkommen.
Idee ?
Beispiel?
Danke
Andreas
Hallo Andreas,
wie wäre es wenn du alle themen in ein array schreibst?
srand ((float) microtime() * 10000000);
$input = array ("Thema1", "Thema2", "Thema3");
$rand_keys = array_rand ($input, 2);
print $input[$rand_keys[0]]."\n";
print $input[$rand_keys[1]]."\n";
Das habe ich von http://www.php.net/manual/en/function.array-rand.php
Vielleicht hilft es ja...
gruss
luca
Wie bekomme ich z.B. 3 Zufallszahlen aus 5 Themen.
Die Zahlen dürfen aber nicht doppelt vorkommen.
Schreib die Werte in eine Liste/Array.
Selektiere per Zufall einen Wert zwischen 1 und Länge der Liste/Array. Lösche danach den Wert aus Liste/Array und fahre fort.
Wie bekomme ich z.B. 3 Zufallszahlen aus 5 Themen.
Die Zahlen dürfen aber nicht doppelt vorkommen.
Leider verstehe ich Deine Vorgehensweise nicht 100%ig. Willst Du 3, 5, n zufällig ausgewählte Einträge einer Tabelle anzeigen, oder steckt da mehr dahinter?