IF ( wert aus array.. funktioniert nur teilweise )


Andreas Späth

Erfahrenes Mitglied
Hallo

Ich hab folgendes Problem, ich hab ein kleines Script geschrieben und bevor ich lange rede hier erstmal die relevanten Teile des Scripts ;)

Hier wird das Array erstellt

PHP:
$a = "0,0,2,3,8,X" ;
$b = explode (",",$a ;)

Und hier die If und Else Geschichte

PHP:
if ( $b [0] == "X" ) { $string_e0 = '<img src="images/x.gif" alt="">' ; } else { 
if ( $b [0] == "0" ) { $string_e0 = '<img src="images/0.gif" alt="">' ; } else { $string_e0 = '<img src="images/dummy.gif" alt="">' ; 
if ( $b [0] == "1" ) { $string_e1 = '<img src="images/1.gif" alt="">' ; } else { $string_e1 = '<img src="images/dummy.gif" alt="">' ; 
if ( $b [0] == "2" ) { $string_e2 = '<img src="images/2.gif" alt="">' ; } else { $string_e2 = '<img src="images/dummy.gif" alt="">' ; 
if ( $b [0] == "3" ) { $string_e3 = '<img src="images/3.gif" alt="">' ; } else { $string_e3 = '<img src="images/dummy.gif" alt="">' ; 
if ( $b [0] == "4" ) { $string_e4 = '<img src="images/4.gif" alt="">' ; } else { $string_e4 = '<img src="images/dummy.gif" alt="">' ; 
if ( $b [0] == "5" ) { $string_e5 = '<img src="images/5.gif" alt="">' ; } else { $string_e5 = '<img src="images/dummy.gif" alt="">' ; 
if ( $b [0] == "6" ) { $string_e6 = '<img src="images/6.gif" alt="">' ; } else { $string_e6 = '<img src="images/dummy.gif" alt="">' ; 
if ( $b [0] == "7" ) { $string_e7 = '<img src="images/7.gif" alt="">' ; } else { $string_e7 = '<img src="images/dummy.gif" alt="">' ;
if ( $b [0] == "8" ) { $string_e8 = '<img src="images/8.gif" alt="">' ; } }}}}}}}}

Das gannze passiert nun auch noch weitere 5 mal für die anderen Teile des Arrays, die $string_* sind natürlich auch anders benannt.
Ausgeben wird immer mit

PHP:
echo $string_e0 ;
echo $string_e1
// Und so weiter.....

Woraufhin dann das entsprechende Bild erscheint.

Das funktioniert alles auch tadellos, auser es handelt sich bei dem Wert um eine 8
Sobald es eine 8 ist kommt alles durcheinander und es wird Irgendetwas Anderes ( X oder auch mal garnichts ) ausgegeben
Alle anderen Werte, also : x und 0 bis 7 werden Problemlos ausgegeben.

Und da auch schon die Frage, warum spinnt das Script bei der 8 ?

Edit: Oben bei dem Array waren zwei ; falsch gesetzt, im Script stimmte das aber, und Hier nun auch
Edit2: nun mit wenigern Reschtschreibfehlern ;)
 
Zuletzt bearbeitet:

meilon

Erfahrenes Mitglied
Hi,
Ich hab mir mal deinen Code in PHPEdit kopiert und erstmal richtig formatiert! Das kann ja keiner lesen :D

Dabei ist mir aufgefallen, dass dir da am Ende einmal ein } fehlt, und mal für dich hinzugefügt. Korrektes einrücken hilft!
PHP:
<?php
if ( $b [0] == "X" ) { 
	$string_e0 = '<img src="images/x.gif" alt="">' ; 
} else {
	if ( $b [0] == "0" ) { 
		$string_e0 = '<img src="images/0.gif" alt="">' ; 
	} else { 
		$string_e0 = '<img src="images/dummy.gif" alt="">' ;
		if ( $b [0] == "1" ) { 
			$string_e1 = '<img src="images/1.gif" alt="">' ; 
		} else { 
			$string_e1 = '<img src="images/dummy.gif" alt="">' ;
			if ( $b [0] == "2" ) { 
				$string_e2 = '<img src="images/2.gif" alt="">' ; 
			} else { 
				$string_e2 = '<img src="images/dummy.gif" alt="">' ;
				if ( $b [0] == "3" ) { 
					$string_e3 = '<img src="images/3.gif" alt="">' ; 
				} else { 
					$string_e3 = '<img src="images/dummy.gif" alt="">' ;
					if ( $b [0] == "4" ) { 
						$string_e4 = '<img src="images/4.gif" alt="">' ; 
					} else { 
						$string_e4 = '<img src="images/dummy.gif" alt="">' ;
						if ( $b [0] == "5" ) { 
							$string_e5 = '<img src="images/5.gif" alt="">' ; 
						} else { 
							$string_e5 = '<img src="images/dummy.gif" alt="">' ;
							if ( $b [0] == "6" ) { 
								$string_e6 = '<img src="images/6.gif" alt="">' ; 
							} else { 
								$string_e6 = '<img src="images/dummy.gif" alt="">' ;
								if ( $b [0] == "7" ) { 
									$string_e7 = '<img src="images/7.gif" alt="">' ; 
								} else { 
									$string_e7 = '<img src="images/dummy.gif" alt="">' ;
									if ( $b [0] == "8" ) { 
										$string_e8 = '<img src="images/8.gif" alt="">' ;
									}
								}
							}
						}
					}
				}
			}
		}
	} 
}
?>
mfg

PS: Okay, dafür braucht man jetzt einen 16:9 Monitor um das alles auf einmal sehen zu können, aber das Board schneidet da ja auch dran rum :D
 

Andreas Späth

Erfahrenes Mitglied
Ja das Einrücken dazu bin ich immer zu faul ;)
Ich verlier ehrlichgesagt aber beim Einrücken auch immer die Übersicht :confused:

Hab das fehlende } gleich mal hinzugefügt, aber das Problem ist anscheinend immernoch vorhanden :(
 
Oha... also bei dem Code stellt es mir die Zehennägel auf, sorry ;)

Ich kenn jetzt leider nicht den Kontext oder den genauen Zweck des Quellcodes, aber das kann man sicher wesentlich eleganter lösen!

Wegen des Problems mit der 8: hast du vielleicht führende Nullen bei Ganzzahlkonstanten verwendet? (Also 01, 02, 03...)
 

Andreas Späth

Erfahrenes Mitglied
Das eleganter lernt man ja erst noch mit der Zeit :)
Und abgesehen von der 8 funktioniert es ja, mehr als dass nun bald die 8 funktioniert erwarte ich als Anfänger im Moment noch nicht ;)

Nein es gibt keine führenden Nullen.



Edit: Meine Fresse bin ich so hohl, natürlich waren es die fehlenden Klammern ( heist das "{}" überhaupt Klammer ? )
Ich hab nachdem ich sie hinzugefügt habe das korigierte Script im völlig falschem Ordner hochgeladen :-(

In diesem Sinne, danke für die Hilfe :)

Und ich werd mir nun das lustige Hütchen aufsetzen, und mich 30 Minuten in die Ecke setzen und auf die Wand starren :(
 
Zuletzt bearbeitet:

Neue Beiträge