Archiv verlassen und diese Seite im Standarddesign anzeigen : Was ist falsch an dieser if/elseif-schleife
Hi,
was ist daran falsch? Ich finde den Fehler nicht, d.h. es trifft immer der letzte Fall bei "else" ein, obwol alle Variablen richtig übergeben werden.
function puckdrittel($puckbesitz_team, $puck_drittel, $team_heim, $team_gast, $passanzahl )
{
//echo "Vor dem Puckdrittel: Puckdrittel: $puck_drittel, Team: $puckbesitz_team, Pass: $passanzahl<br>";
if ( $puckbesitz_team == $team_heim AND $puck_drittel == $team_heim AND $passanzahl >= 2
OR
$puckbesitz_team == $team_gast AND $puck_drittel == $team_gast AND $passanzahl >= 2 ) {
$puckdrittel = 'mittel';
}
elseif ( $puckbesitz_team == $team_heim AND $puck_drittel == 'mittel' AND $passanzahl >= 2 ) {
$puckdrittel = $team_gast;
}
elseif ( $puckbesitz_team == $team_gast AND $puck_drittel == 'mittel' AND $passanzahl >= 2 ) {
$puckdrittel = $team_heim;
}
elseif ( $puckbesitz_team == $team_heim AND $puck_drittel == $team_gast AND $passanzahl > 2
OR
$puckbesitz_team == $team_gast AND $puck_drittel == $team_heim AND $passanzahl > 2 ) {
$wirdgeschossen = rand(0,3);
}
else { echo "Fehler!"; }
$_SESSION['puck_drittel'] = $puck_drittel;
$_SESSION['wirdgeschossen'] = $wirdgeschossen;
//echo "Puckdrittel nach Funktion: $puck_drittel, Team: $puckbesitz_team, Schuss: $wirdgeschossen.<br>";
}
Payne_of_Death 29-10-2003, 20:45 was ist daran falsch? Ich finde den Fehler nicht, d.h. es trifft immer der letzte Fall bei "else" ein, obwol alle Variablen richtig übergeben werden.
Ehm, woher soll ich bitte schön wissen bei dieser Beschreibung woher der Fehler rührt? Brauch ich dazu eine Glaskugel oder ein Medium oder wie?
Du redest von Schleifen ich seh keine ;)
Fakten die zu klären sind:
- Welche Parameter bzw. Variablen erhält die Funktion?
- Die ganzen Bedingungen usw. ausklammern und überprüfen ob die übergebenen Parameter Inhalte haben....
- Wenn du Inhalte hast dann erklär was gemacht werden soll und was nicht tut.
-> Entweder werden keine Werte übergeben oder aber kein logisches Konstrukt trifft zu, da es einen Logikfehler gibt....
Di Funktion wird wie folgt aufgerufen:
puckdrittel($_SESSION['puckbesitz_team'], $_SESSION['puck_drittel'], $team_heim, $team_gast, $_SESSION['passanzahl'] );
und die Parameter sind auch alle da, werden auch alle richtig angezeigt, aber es scheint wirklich keine Übereinstimmung einzutreffen, so dass nur "else" übrig bleibt.
MelloPie 29-10-2003, 21:44 ich glaub Du machst einfach ein paar zuwenige klammern
Wenn ich zu wenige Klammern mache, dann würde das überhaupt nicht funktionieren, oder?
Aber das Skript funktioniert ja, weil wenigstens (leider immer) "echo "Fehler";" ausgeführt wird.
in deinem auskommentierten "echo" listest du nur 3 von 5 variablen.
steht auch was in $team_heim, $teamgast ?
wenn ja, zeig doch mal, was in den einzelnen vars steht.
btw: "if-schleifen" (http://www.dclp-faq.de/q/q-terminologie-if.html)
Jaja, ich weiß, dass es keine Schleife ist, deshalb is ja in einer Funktion und diese Funktion wird aus einer for-Schleife aufgerufen. Aber trotzdem weiß ich immernoch nicht, warum die Bedingung nicht erfüllt wird, obwohl er mir alles genau anzeigt , d.h. die Bedingungen wie z.B.
$puckbesitz_team == $team_heim
Loewenzahn == Loewenzahn
eintreffen, aber es keine Veränderung gibt.
mrhappiness 30-10-2003, 13:15 erste zeile der funktion:echo '$puckbesitz_team: -'.$puckbesitz_team.'-<br />';
echo '$puck_drittel: -'.$puck_drittel.'-<br />';
echo '$puckbesitz_team: -'.$puckbesitz_team.'-<br />';
echo '$team_heim: -'.$team_heim.'-<br />';
echo '$team_gast: -'.$team_gast.'-<br />';
echo '$team_gast: -'.$team_gast.'-<br />';
echo '$passanzahl: -'.$passanzahl.'-';ausgabe?
Ausgabe:
$puckbesitz_team: -Loewenzahn-
$puck_drittel: -mittel-
$puckbesitz_team: -Loewenzahn-
$team_heim: -Loewenzahn-
$team_gast: -Pusteblume-
$team_gast: -Pusteblume-
$passanzahl: -1-Fehler!
und weiter unten:
$puckbesitz_team: -Loewenzahn-
$puck_drittel: -mittel-
$puckbesitz_team: -Loewenzahn-
$team_heim: -Loewenzahn-
$team_gast: -Pusteblume-
$team_gast: -Pusteblume-
$passanzahl: -3-
Da sollte eigentlich eine Bedingung erfüllt sein, oder?
mrhappiness 30-10-2003, 15:23 Original geschrieben von Kiruma
Ausgabe:
$puckbesitz_team: -Loewenzahn-
$puck_drittel: -mittel-
$puckbesitz_team: -Loewenzahn-
$team_heim: -Loewenzahn-
$team_gast: -Pusteblume-
$team_gast: -Pusteblume-
$passanzahl: -1-Fehler!
Da sollte eigentlich eine Bedingung erfüllt sein, oder? und welche?
Original geschrieben von Kiruma
und weiter unten:
$puckbesitz_team: -Loewenzahn-
$puck_drittel: -mittel-
$puckbesitz_team: -Loewenzahn-
$team_heim: -Loewenzahn-
$team_gast: -Pusteblume-
$team_gast: -Pusteblume-
$passanzahl: -3-
elseif ( $puckbesitz_team == $team_heim AND $puck_drittel == 'mittel' AND $passanzahl >= 2 )
Diese sollte meines Wissens erfüllt sein.
mrhappiness 30-10-2003, 15:35 Original geschrieben von Kiruma
elseif ( $puckbesitz_team == $team_heim AND $puck_drittel == 'mittel' AND $passanzahl >= 2 )
Diese sollte meines Wissens erfüllt sein. ja, aber da vorher schon die ausgabe "Fehler" kommt, hat er das if-konstrukt ja bereits abgearbeitet oder?
und da nach dieser zweiten ausgabe nicht mehr der text "Fehler" kommt, denke ich mal, dass er da was gearbeitet hat
So, endlich habe ich den Fehler gefunden. Ganz einfach:
$puckdrittel sollte eigentlich $puck_drittel heißen.
Wieviel Leute haben da nicht danach gefragt, lol. Okay -> Thema beendet.
Vielen Dank an alle.
|
|