Kahmoon
Erfahrenes Mitglied
Tach beisammen....ich stehe mal wieder vor einem Verständnisproblem.
Folgendes:
Ich baue grad ein Portal für einen Rennveranstalter. Bei den Anmeldungen ist es möglich eine Wunschstartnummer anzugeben. Wird das nicht getan, wird automatisch eine Nummer generiert. Da pro Veranstaltung die Nummern aber unique sein müssen, wollte ich das ganze mit 2 Funktionen lösen. eine Funktion die eine Randomzahl generiert und eine weitere die diese Zahl dann in der Datenbank auf Vorkommen checkt. Ist diese Nummer zu dem Event schon vergeben wird Funktion generieren wieder aufgerufen und das Spielchen beginnt von vorn bis ein "true" also Nummer noch nicht für diesen Event vorhanden kommt.
Hier sind beide Funktionen (Nummer 45 ist testhalber vergeben, daher der kleine Randomrange)
Generieren
Funktion Check
nach wie vor liefert er mir aber Ergebnisse die er nicht liefer soll...also false Werte. Zwar nicht 45 aber dafür dann ein leerwert. Er sollte wenn false kommt das ganze nochmal starten.
Wäre nett wenn mir wer vom Schlauch hilft auf dem ich gerade stehe
Edit:
Also inzwischen bin ich soweit das ich festgestellt habe das er soweit alles richtig macht. Sobal sich die Funktion "generieren" aber das erste mal selber aufruft wird nichts mehr beim return übergeben.
geht somit quasi leer aus. Wieso kommt da mit return kein Wert mehr an?
Folgendes:
Ich baue grad ein Portal für einen Rennveranstalter. Bei den Anmeldungen ist es möglich eine Wunschstartnummer anzugeben. Wird das nicht getan, wird automatisch eine Nummer generiert. Da pro Veranstaltung die Nummern aber unique sein müssen, wollte ich das ganze mit 2 Funktionen lösen. eine Funktion die eine Randomzahl generiert und eine weitere die diese Zahl dann in der Datenbank auf Vorkommen checkt. Ist diese Nummer zu dem Event schon vergeben wird Funktion generieren wieder aufgerufen und das Spielchen beginnt von vorn bis ein "true" also Nummer noch nicht für diesen Event vorhanden kommt.
Hier sind beide Funktionen (Nummer 45 ist testhalber vergeben, daher der kleine Randomrange)
Generieren
PHP:
function generate_startnummer($eventid){
$startnummer_zufall = rand(44,46);
if(check_startnummer($startnummer_zufall, $eventid)){
return $startnummer_zufall;
}else{
generate_startnummer($eventid);
}
}
Funktion Check
PHP:
function check_startnummer($nummer, $eventid){
#Check ob die Zahl schon in der DB ist
$query = "SELECT startnummer FROM buchungen WHERE startnummer=".$nummer." AND idtermin=".$eventid.";";
if(mysql_num_rows(mysql_query($query)) != 0){
return false;
}else{
return true;
}
}
nach wie vor liefert er mir aber Ergebnisse die er nicht liefer soll...also false Werte. Zwar nicht 45 aber dafür dann ein leerwert. Er sollte wenn false kommt das ganze nochmal starten.
Wäre nett wenn mir wer vom Schlauch hilft auf dem ich gerade stehe
Edit:
Also inzwischen bin ich soweit das ich festgestellt habe das er soweit alles richtig macht. Sobal sich die Funktion "generieren" aber das erste mal selber aufruft wird nichts mehr beim return übergeben.
PHP:
$_POST["startnummer"] = generate_startnummer($_POST["eventid"]);
geht somit quasi leer aus. Wieso kommt da mit return kein Wert mehr an?
Zuletzt bearbeitet: