• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Zufallszahlen (mehrere)

sveka

Mitglied
Liebe User,

ich benötige für ein Script verschiedene Zufallszahlen. Um genau zu sein 8 Stück.

Hier mein Script noch ohne unnötigen Formatierungswahn. Allerdings bekomme ich bei der Ausführung des Scriptes immer dieselben Zahlen abgespeichert. Wie kann ich dies verhindern? Ich danke.

PHP:
<?php

include ('db.inc.php');

/* FSB */
$zufall_min = rand(8,13);
$zufall_max = rand(14,19);

/* Omsk */
$zufall_min_1 = rand(5,11);
$zufall_max_1 = rand(12,21);

/* Trübergen */
$zufall_min_2 = rand(7,15);
$zufall_max_2 = rand(15,22);

/* Noranda */
$zufall_min_3 = rand(4,12);
$zufall_max_3 = rand(13,20);

/* Allgemein */
$datum = date("d.m.Y");
$jahreszeit = "fruehling";

$eintrag = "UPDATE fsb SET temp_min = '$zufall_min' , temp_max = '$zufall_max' , date = '$datum' , jahreszeit = '$jahreszeit'";
$eintragen = mysql_query($eintrag);

$eintrag = "UPDATE omsk SET temp_min = '$zufall_min_1' , temp_max = '$zufall_max_1' , date = '$datum' , jahreszeit = '$jahreszeit'";
$eintragen = mysql_query($eintrag);

$eintrag = "UPDATE truebergen SET temp_min = '$zufall_min_2' , temp_max = '$zufall_max_2' , date = '$datum' , jahreszeit = '$jahreszeit'";
$eintragen = mysql_query($eintrag);

$eintrag = "UPDATE noranda SET temp_min = '$zufall_min_3' , temp_max = '$zufall_max_3' , date = '$datum' , jahreszeit = '$jahreszeit'";
$eintragen = mysql_query($eintrag);



?>
 
Werbung:
Ich bin mir nicht sicher, aber änder mal
PHP:
rand();
zu
PHP:
mt_rand();

Und initalisiere dann den ZUfallsgenerator so:
PHP:
mt_srand((double)microtime()*1000000);
 
Werbung:
ansonsten kannst du auch alle ermittelten zufallszahlen in ein array packen und bei den nachfolgenden zufallszahlen per for-schleife das array nach übereinstimmungen prüfen.
 
Habe nochmal die Google-Suche genutzt und dabei folgendes Script gefunden. Dieses gibt derzeit 8 Zufallszahlen aus. Das ist super.

Ich möchte aber meine ausgegebenen Zahlen gerne in eine Datenbank schreiben. Und zwar in verschiedene Tabellen, wie oben zu sehen.

Kann ich diese aus diesem Script irgendwie einzeln auslesen?

PHP:
<?php

$numbers = range (0,22);
srand((float)microtime() * 1000000);
shuffle($numbers);

for ($i = 0; $i < 8; $i++)
echo $numbers[$i] . "<br>";

?>
 
Werbung:
$numbers ist ein array.
Du kannst statt oder zusätzlich zum echo jeden Schleifendurchlauf in die Datenbank schreiben.


Entschuldige bitte, dass ich jetzt nachfragen muss. Aber kannst du mir ein Beispiel geben? Irgendwie hänge ich mit meinen Gedanken ...

Meine Idee dazu wäre jetzt ...

PHP:
<?php

$numbers = range (0,22);
srand((float)microtime() * 1000000);
shuffle($numbers);

for ($i = 0; $i < 8; $i++)
echo $numbers[$i] . "<br>";

for ($i = 1; $i < 7; $i++)
echo $numbers[$i] . "<br>";

?>
 
Ich weiß nicht, was du mit deiner Idee bewirken möchtest. Du wiederholst ja nur die gleiche Schleife nochmal mit nur 7 Zufallszahlen.
Die for-Schleife läuft so lange durch, bis $i gleich 8 ist und zählt $i jedes mal um 1 hoch.
$i ist demzufolge nichts weiter als der Array-Index pro Schleifendurchlauf. Also $numbers[0] bis $numbers[7].
Du kannst die einzelnen Schleifendurchläufe nutzen, um die 8 Zahlen in die datenbank zu schreiben oder du kanst das Array $numbers direkt in die Datenbank schreiben indem du dazu eine separate auswertung von numbers vornimmst.
So viel zur Theorie!
Wie du die Einträge in die Datenbank vornimmst, kann ich dir nicht sagen, da ich SQL-Legastheniker bin :D
Da musst du dich selber in die Materie einlesen oder hoffen, dass sich jemand in das Thema verirrt, der SQL kann ;)
Das hier wäre jedoch eine brauchbare Einstiegslektüre
 
Werbung:
Zurück
Oben