hallo, scheinbar belebe ich hier als einziger das forum.
also, ich hab nen scrip gefunden, welches zufällig 6 zahlen aus 49 ausgeibt. also lottozahlen. danke dafür an den spender.
ich hab mir daraus ein script gebastelt, welches die zufälligen zahlen dann in eine datenbank speichert, zuvor jedoch per do-while-schleife die bereits vorhandenen einträge in der datenbank überprüft, ob es keine doppelten gibt. und das ganze script ist noch mal von einer do-while-schleife imgeben, die von zähler 1 bis zähler < 13983817 was der anzahl der kombinationsmöglichkeiten für 6 aus 49 sind.
das script stürzt aber ab, es macht nur 6 einträge in die datenbank und dann geht es nicht weiter.
zugegeben, die 13983816 ist ne groe zahl und und mit zunehmender db-größe hat auch die interne do-while mehr zu tun, da hat die anlage zu rödeln aber selbst wenn ich das z.b. auf <50 für das schleifenende stelle stürzt sie ab. es funktiont entweder immer einzeln oder max, wenn es auf <7 stelle. dann trägt er 6 datensätze ein und dann muss ich wieder aktualisieren.
hab ich ein fehler im script oder woran könnte es liegen?
als milchmädchen-lösung könnte man die seite ja nach 10 sec wieder aufrufen, dann würde es auch nach und nach gehen. gibt es dafür ne möglichkeit in php oder hat einer ne ganz andere idee?
thx und hier mal das script:
achja, an der stelle: "datensatz schon vorhanden" stirbt das script, dort wäre es schön, wenn auch dort dann automatisch das script neu starten würde und nicht da stehen bleibt.
gibt es da sowas wie goto zeile 1 oder so?
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97: | <?
// timeout30 für scriptlaufzeit ausser kraft setzen
ini_set("max_execution_time","0");
require("connect.inc.php");
$a = 1;
do
{
// die folgende Zeile erzeugt einen internen Startwert für den Zufallsgenerator
srand ((double)microtime()*1000000);
// die Schleife wird sooft durchlaufen wie $i kleiner 7 ist,
// da wir ja 6 Zahlen brauchen
for($i=1; $i<7; $i++){
$val = rand(1,49);
// $val ist eine zufällige Zahl zwischen 1 und 49
(!strpos(" ".$vals, "$val")) ? $vals .= $val." " : $i--;
// Ist $val noch nicht in $vals enthalten hänge es zzgl. Leerzeichen an
// wenn doch verringere $i um 1 damit am Ende 6 Zahlen rauskommen
}
$arrayLotto = explode(" ", trim($vals));
// zum Sortieren verwandeln wir die Zahlen am Besten in ein Array
// trim() entfernt das hintere Leerzeichen
sort($arrayLotto);
// Anzahl der Datensätze auslesen
$query = ("SELECT lz_id FROM lottozahlen");
$result = mysql_query($query);
$anzahl = mysql_num_rows($result);
//echo "Anzahl der Datensätze: ".$anzahl."</br>";
// Überprüfung ob arrayLotto schon vorhanden ist
$i = 1;
$anzahl++;
do
//so lange die vorhandenen datensätze überprüfen, bis übereinstimmung oder letzte id
{
$query1 = mysql_query("SELECT n1,n2,n3,n4,n5,n6 FROM lottozahlen WHERE lz_id = $i");
$data = mysql_fetch_array($query1);
if (in_array($data,$arrayLotto))
{
echo "Datensatz schon vorhanden"."</br>";
die;
}
else
{
echo " ";
}
$i++;
} while ($i < $anzahl);
// einzelnen Inhalte des Arrays auf einzelne neue Variabeln übertragen
$zahl1 = $arrayLotto[0];
$zahl2 = $arrayLotto[1];
$zahl3 = $arrayLotto[2];
$zahl4 = $arrayLotto[3];
$zahl5 = $arrayLotto[4];
$zahl6 = $arrayLotto[5];
mysql_query("INSERT INTO lottozahlen VALUES('','$zahl1','$zahl2','$zahl3','$zahl4','$zahl5','$zahl6')");
$a++;
} while ($a < 7);
$query = ("SELECT lz_id FROM lottozahlen");
$result = mysql_query($query);
$anzahl = mysql_num_rows($result);
echo "Anzahl der bisher eingetragenen Datensätze: ".$anzahl."</br>";
?> |