Wert einer Variabel später initalisieren...

illuminatus26

Erfahrenes Mitglied
Hallo zusammen...

Meine Frage ist vielleicht nicht so ganz helle....
Ich zeige erstmal den Code und beschreibe dann darin, was ich machen möchte...

PHP:
echo "<table border=0>";
		// Zeile mit Bezeichnungen
		echo "<tr>";
		echo "<td>Tag</td>";
		echo "<td>Datum</td>";
		echo "<td>Anstoss</td>";
		echo "<td>Heimteam</td>";
		echo "<td></td>";
		echo "<td>Gastteam</td>";
		echo "<td>Ergebnis</td>"; //<-- Diese und
		echo "<td>Tipps</td>"; //<-- diese Spalte sollen einen Namen in Abhängigkeit ...
		echo "<td>Punkte</td>";
		echo "</tr>";
		
		while($ergebnis = mysql_fetch_array($result)) {
		
			$spielid = $ergebnis['id'];
			$anstoss = test_anstoss($spielid);
			
			//Zeile mit Daten
			echo "<tr>";
			echo "<td>".$ergebnis['Tag']."</td>";
			echo "<td>".$ergebnis['Datum']."</td>";
			echo "<td>".$ergebnis['Anstoss']."</td>";
			echo "<td>".$ergebnis['Heimteam']."</td>";
			echo "<td>-</td>";
			echo "<td>".$ergebnis['Gastteam']."</td>";
			echo "<td>";
				
				if ($anstoss == FALSE) { // ... von dieser Abfrage erhalten
				
					tipps_anzeigen($spielid);
				}
				else {
					
					ergebnis_anzeigen($spielid);
				}
				
			echo "</td>";
			echo "<td>";

Das Problem ist, dass ich ja schlecht den Wert einer Variablen ausgeben kann, bevor diese überhaupt initialisiert wurde...
Hat jemand ne Idee, wie man das lösen kann?
Oder gibt es evtl. keine Möglichkeit...
Bedanke mich schonmal im Vorfeld...
 
Um welche Variable geht's denn ueberhaupt? :confused:

Allgemein wuerde ich im Grunde zu sowas raten:
PHP:
if (isset($meinekleinevariable))
{
 echo $meinekleinevariable;
}
 
Und was machst du, wenn für das eine Spiel "Anstoss" auf false ist, und für das nächste dann auf true? Dann hättest du zwei Tabellenüberschriften.

Wenn dieser Fall nicht eintritt, dann kannst du zum Beispiel in der While-Schleife erstmal den Tabelleninhalt in eine Variable packen, und dann anhand des Wertes den Tabellenheader füllen und dann den Tabelleninhalt einfügen.

Oder du integrierst das direkt in die Schleife, und machst einfach eine temporäre Variable in dem du festhälst ob der Header schon ausgegeben ist oder nicht, wenn er noch nicht ausgegeben ist, dann gibst du ihn mit den richtigen Überschriften aus, wenn doch, dann überspringst du den Schritt einfach.

oder oder oder ... es gibt viele Varianten, wobei die allesamt nicht die schönsten sind. Ich würde den Code ein wenig umstrukturieren, wobei sich schon mal ganz stark die Frage stellt: Wie sieht Anstoss aus? Für jedes Spiel anders, oder nur für jeden Spieltag? Etc. wenn man den Programmfluss und seinen Sinn ein wenig analysiert (was von hier aus natürlich ein wenig schwer ist, kenne ja nichts davon), findet man mit Sicherheit stellen in dem man die eine oder andere Abfrage los werden kann und den Code an sich weitaus lesbarer.
 
@ Dennis
die gibt es noch nicht...

@Sir Robin
Und was machst du, wenn für das eine Spiel "Anstoss" auf false ist, und für das nächste dann auf true? Dann hättest du zwei Tabellenüberschriften.

Es handelt sich um den Bundesligaspielplan.
1x Freitag, 5x Samstags und 2x Sonntag.
Da ich die Ergebnisse nur komplett für einen Spieltag eingebe, wäre es so, dass sobald einmal Anstoss = FALSE ergibt, anstatt Ergebnis --> Tipps und anstatt Tipps --> Inputfelder angezeigt werden sollen...

Oder du integrierst das direkt in die Schleife, und machst einfach eine temporäre Variable in dem du festhälst ob der Header schon ausgegeben ist oder nicht, wenn er noch nicht ausgegeben ist, dann gibst du ihn mit den richtigen Überschriften aus, wenn doch, dann überspringst du den Schritt einfach.

Das hört sich brauchbar an...
Hast du dafür vielleicht ein kleines Beispiel parat
 
PHP:
<?php

$headerCreated = false;

while($ergebnis = mysql_fetch_array($result)) {
    
    $spielid = $ergebnis['id'];
    
    // wenn Header noch nicht gezeigt wurde, zeige rufe die Header-Funktion auf
    if( !$headerCreated ) {
        createTableHead(test_anstoss($anstoss));
        $headerCreated = true;
    }
    
    // weiter ...

}

?>

die konkrete Implementierung der Funktion überlasse ich dann dir ;-)
 
Zurück