Einzelnen Beitrag anzeigen
  #1  
Alt 17.02.2009, 15:24:15
Gonzo28 Gonzo28 ist offline
Anfänger
 
Registriert seit: Feb 2009
Alter: 39
Beiträge: 7
PHP / MYSQL dynamische Tabelle

Hallo, ich habe einen Logikfehler in meiner dynamischen Tabelle, ich hab den Code mal durchkommentiert und formatiert um euch um Hilfe zu bitten.

Das die Tabelle nach jeder Spalte geschlossen wird ist gewollt.
Trotzdem kriege ich den Zähler nicht gescheit in den Griff so das die Ausgabe im Browser zwar stimmt, das ganze aber weder W3C kompatibel ist noch im Quelltext korrekt aussieht.

Danke im voraus, mir qualmt schon seit 2 Tagen der Kopf ;).

Code:
<?php

$tabellencounter=0;
$zeileende=4;
$unfertige_zeile=$zeileende-1;
while(array)
{
		
		// Wenn Counter gleich Null, bedeutet Tabelle neu, also <table...>
		if ($tabellencounter ==0)
				{echo "<table><tr>";}
		// Wenn Tabelle neu oder angebrochen aber noch nicht am Spaltenmaximum angekommen erstelle <td>.
		if ($tabellencounter >=0 && $tabellencounter <= $unfertige_zeile)
				{echo "<td align=\"center\">";}
		//  Tabelleninhalt
				echo "content.....";
		//  Wenn Tabelle neu oder angebrochen aber noch nicht am Spaltenmaximum angekommen schliesse </td>.
		if ($tabellencounter >=0 && $tabellencounter <= $unfertige_zeile)
				{echo "</td>";}
		//  Wenn die eingestellte Spaltenzahl "$zeilenende" erreicht wurde schließe </td>, </tr> und die tabelle </table>
		if ($tabellencounter == $zeileende)
				{echo "</td></tr></table>";}	
		// Damit die Tabelle auch geschlossen wird wenn die While zu Ende ist aber das Ergebnis ungerade ist und der Counter nicht durch den "++" Zähler überschrieben wird, schreibe den Wert in eine extra Variable
		// welche nach der While benötigt wird.
				$tabellencounter2=$tabellencounter;
		// Wenn das Spaltenende erreicht wird, wird der Zähler resettet auf "negativ 1" da danach der Zähler hochzählt, so sollte die While oben wieder bei 0 beginnen.
		if ($tabellencounter == $zeileende)
				{$tabellencounter=-1;}
				
			$tabellencounter++;												
}
					if ($tabellencounter2)
						{	if ($tabellencounter2 >=0 && $tabellencounter2 <= $unfertige_zeile)
								{echo "</tr></table>";}		
						}											

?>

Geändert von Gonzo28 (17.02.2009 um 16:43:43 Uhr)
Mit Zitat antworten