Freddy: Fehler in if-Schleife - weiß nicht wieso

Hallo!
Ich habe ein PHP-Script geschrieben. Der Sinn ist vielleicht etwas schwer zu verstehen, es werden in einer Tabelle Tipps von verschiedenen Tippern, die zwei Mannschaften bilden, verglichen. Die Daten stehen in einer externen Datei "spiel1.dat". Ich geb euch mal das Script:
<?php
$dateiname = "spiel1.dat";
$fp = fopen( $dateiname,"r" ) or die("Konnte $dateiname nicht öffnen");
while(!feof($fp))
 {
 $zaehler++;
 $zeile[$zaehler]= fgets( $fp, 1024);
 }
//erster Eintrag im Array hat Index [1]!
print "<table border=0><tr><td align=center colspan=2>$zeile[2] - $zeile[1]</td></tr>"; //Art - Gegner
print "<tr><td align=center colspan=2>$zeile[3]</td></tr>"; //Spielstand
print "<tr><td align=center colspan=2>$zeile[4]</td></tr>"; //Quoten
print "<tr><td>$zeile[6]:$zeile[7] - $zeile[8] ($zeile[9]) "; // Spieler 1 = Zeile 6
($zeile[8]==$zeile[10])? print ' <img src="richtig.gif">':print ' <img src="falsch.gif">';
print"- $zeile[11]</td>";
print "<td>$zeile[36]:$zeile[37] -  $zeile[38] ($zeile[39]) "; //Gegner 1 = Zeile 36
($zeile[38]==$zeile[40])? print ' <img src="richtig.gif">':print ' <img src="falsch.gif">';
print "- $zeile[41]</td></tr>";
//Weitere 3 Reihen mit je zwei Spalten
//JETZT KOMMT WOHL DER FEHLER:
if($zeile[30]=="%"){ //Prüfen: Spieler 5 vorhanden?
 print "<tr><td>kein 5. Spieler</td>";
 print "Spieler 5 nicht vorhanden<br>";
 }else{
 print "<tr><td>$zeile[30]:$zeile[31] - $zeile[32] ($zeile[33]) ";
  ($zeile[32]==$zeile[34])? print ' <img src="richtig.gif">':print ' <img src="falsch.gif">';
 print "-$zeile[35]</td>";
 }
if($zeile[60]=="%"){ //Prüfen: Gegner 5 vorhanden?
 print "Gegner 5 nicht vorhanden/Test negativ<br>";
 print "<td>kein 5. Gegner</td></tr>";
 }else{
 print "<td>$zeile[60]:$zeile[61] - $zeile[62] ($zeile[63]) ";
  ($zeile[62]==$zeile[64])? print ' <img src="richtig.gif">':print ' <img src="falsch.gif">';
 print "-$zeile[65]</td></tr>";
 }
print"</table>";
?>

Das Problem ist, dass nicht vernünftig geprüft wird, ob die entsprechenden zeilen wirklich leer sind. Die externe spiel1.dat ist so aufgebaut, das für jedne Spieler je 6 Reihen stehen, wo Name, getipptes spiel ,Tipp, quote, Ergebnis und Ereignis (Tor,...) stehen. am Anfang allgemeine Infos wie gesamte Tore, Gegner etc.
Da es vorkommen kann, dass ds Heim/Auswärtsteam evtl. nur 4 spieler aufstellt, habe ich die If-Schleifen eingebaut.
LEider wird da immer etwas falsches Angezeigt. Ich habe - um ganz sicher zu gehen, dass etwas icht stimmt - in alle leeren Zeilen ein Prozent-Zeichen geschrieben. Im Beispiel hat die Heimmannschaft nur 4 Spieler, die Gastmannschaft 5. Ich habe zwei Variationen ausprobiert: einmal - so wie es oben steht - mit Abfrage =="%". Es wurde bei der Gastmannschaft richtiog der 5. Spieler wieder gegeben. Doch bei der Heimmannschaft wuirde nicht "kein 5. Spieler" ausgegeben, sondern die Prozentzeichen. Wenn ich die abfrage in !="%" umgeändert habe, kam auf BEIDEN Seiten die Angabe "kein 5. Spieler vorhanden".
Liegt da jetzt ein logisches Problem vor oder was ist da falsch?
MfG,
Freddy

  1. Hi!
    Also erstmal ist Deine Fehler-Beschreibung beschissen, sorry :-)
    und zweitens gibt es keine if-Schleife.
    Was steht denn in $zeile[30]? oder was sollte da stehen?
     print "Spieler 5 nicht vorhanden<br>"; Steht in keiner Tabellenspalter
    "%" versteh ich nicht so ganz, dann müsste in der $zeile[30] ja ein % zeichen stehen?
    Keine Ahnung was du da willst
    Gruss Uli

    1. Hallo!
      wie  gesagt, für aussenstehende schwer zu vertehen....ausserdme steht eine If-Schleife da!!!
      Habe mittlerweile das Problekm selber behoben. Es war so, dass sozusagen nach dem Przentzeichen noch zwei - unsichtbare - "Zeiochen" kamen: eins für die neue Linie und noch eins (wieder vergessen....*g*). Die werden dann sozusagen mit ins Array geschrieben. Und bei der Überprüfung, ob im Array NUR ein % steht, kommt dann natürlich was falsches raus, klar....trotzdem danke.
      Dennoch verstehe ich nicht, wieso niemand merkt dass da eine If-Schleife ist?!
      MfG,
      Freddy

      1. Dennoch verstehe ich nicht, wieso niemand merkt dass da eine If-Schleife ist?!

        Man es gibt keine if-Schleife.
        eine schleife ist eine Kontrollanweisung die mehrmals durchlaufen wird, sprich while oder for. Eine if-Anweisung dagegen wird nur einmal durchlaufen, deshalb ist es keine schleife, auch nicht wenn sie innerhalb einer for-schleife steht
        uli