PHP probleme bei IF-Abfrage

DJPaschi

Digenis Progger
ID: 49867
L
19 Juni 2006
103
6
Moin,
ich sitze hier gerade vor einem Problem :

ich bastel an verschiedenen IF-Abfragen zur auswertung von Fussballergebnissen mit Tips.

Eine IF-Abfrage reagiert aber nicht wie sie soll.
PHP:
}elseif(($home > $away AND $bhome > $baway) OR ($home == $away AND $bhome == $baway) OR ($home < $away AND $bhome < $baway)){
$punkte = 1;
}...
in dem bestimmten fall hat $home den Wert 3 und $away den wert 1, $bhome den wert 1 $baway den wert 0 ... allerdings geht er nicht in die schleife rein..

wenn man das ganze mal auf den einzelnen teil beschränkt heißt es

elseif(3 > 1 AND 1 > 0) ... und trotzdem geht er nicht rein

hat jemand eine Ahnung warum?
 
Poste doch mal die ganze Schleife, vielleicht geht er vorher schon in einen anderen part rein und überspringt diese Anweisung...
 
kann ich gerne machen aber in diesem fall geht er in die else rein ... aber ich poste die ganze

PHP:
				if($home == $bhome AND $away == $baway){
					$punkte = 4;
				}elseif($bdiff == $diff){
					$punkte = 3;
				}elseif(($home > $away AND $bhome > $baway) OR ($home == $away AND $bhome == $baway) OR ($home < $away AND $bhome < $baway)){
					$punkte = 1;
				}else{
					$punkte = 0;
				}
 
hm macht wenig Sinn. Ich sehe keinen Fehler in der Schleife...

Was haben $diff und $bdiff denn für Werte? Aber wenn er in die else geht müsste da was anderes faul sein.

edit: probier mal mit <= und >= etc...
 
naja im prinzip geht es darum richtiger tip 4 punkte richtige tendenz 3 richtige Mannschaft gewinnt 1 punkt ... die ersten beiden teile der schleife arbeiten korrekt ... lediglich der 3. teil der schleife nicht

mit >= kann ich nicht arbeiten da es die Auswertung verzerrt ... oder ich habe nicht verstanden wie du das meinst mit dem >= einsetzen ;)

edit:
diff hat 2 und bdiff hat 1 als wert
 
Hmm, gemäß Operator-Rangfolge sollte das > höher prior behandelt werden, als das AND, aber vielleicht setzt du doch mal als Test ein paar Klammern mehr, um auszuschließen, dass es da hängt?!
PHP:
if(((a > b) and (c > d)) or ((a = b) and (c = d)) or ((a < b) and (c < d))) {

Ach ja, und übrigens: <link>
 
der Tip mit den Klammern war gut ... das eine Problem hing damit zurück war aber noch was anderes fehlerhaft

Danke ;)
 
die verwendung der if-abfragen bei gesetzten Werten führte bei mir zum korrekten Ablauf.
Hast du dir die Variablen direkt vor der Abfrage mal ausgeben lassen?