HTML/PHP Problem

BigFacker

Erfahrenes Mitglied
Ja hallo!

Und zwart hab ich ein ziemliches saftiges Problem.

Folgendes will ich machen:

Eine Tabelle erstellen mit variabler Spaltenzahl und Zeilenzahl. Das heißt, der nutzer gibt an: 8 Spalten. Daraufhin soll ein PHPScript abgearbeitet werden, was die Tabelle ausgibt.

In der rsten Spalte sollen nun 8 Zeilen drinne sein. In der 2te Spalte jedoch, sollen nur noch 4 drinne sein, in der dritten dann noch 2 und dann noch 1.

Genauso wäre das bei 16 Zeilen.
1. Spalte: 16 Zeilen
2. Spalte: 8 Zeilen
3. Spalte: 4 Zeilen
4. Spalte: 2 Zeilen
5. Spalte: 1 Zeilen

Das ganze ist im Endeffekt wie eine Pyramide auf dem Kopf.

nur gibts bei der ganzen Sache ein Problem: ich muss in der 2ten und auch 3 Spalte mit Colspan arbeiten, damit quasie eine Zeile der 2 Spalte doppelt so hoch ist wie eine der 1 Spalte. Sollte ja klar sein oder?
Eine Tabelle mit anfangs 8 zeilen würde in HTML so aussehen:
PHP:
<table border="1" width="100%" height="198">
  <tr>
    <td width="25%" height="17"></td>
    <td width="25%" rowspan="2" height="42"></td>
    <td width="25%" rowspan="4" height="92"></td>
    <td width="25%" height="150" rowspan="8"></td>
  </tr>
  <tr>
    <td width="25%" height="19"></td>
  </tr>
  <tr>
    <td width="25%" height="19"></td>
    <td width="25%" rowspan="2" height="44"></td>
  </tr>
  <tr>
    <td width="25%" height="19"></td>
  </tr>
  <tr>
    <td width="25%" height="19"></td>
    <td width="25%" rowspan="2" height="44"></td>
    <td width="25%" rowspan="4" height="94"></td>
  </tr>
  <tr>
    <td width="25%" height="19"></td>
  </tr>
  <tr>
    <td width="25%" height="19"></td>
    <td width="25%" rowspan="2" height="44"></td>
  </tr>
  <tr>
    <td width="25%" height="19"></td>
  </tr>
</table>
und hier liegt das problem. Die spalten dynamisch zu erzeugen, zum beispiel mit einer Zählschleife, ist für meinen Skill total unmöglich, da ich kein Muster in der Sache sehe.

Cool wärs, wenn man ne Zählschleife einfach rückwärts läuft und die Zeilenzahl einfach immer halbiert wird. Nichts da! Das geht eben nicht.

Sieht jemand in der ganzen Sache ein Muster? Wie man die Tabellen dynamich erzeugen kann?`

Das wäre ne echt krasse Hilfe leute!

VIELEN DANK!
bis denne
bigfacker
 
PHP:
<?php
echo "<table border='2'>";
$csp = 1;
$spalten = 8;
while ($spalten >= 1) {
	$x = $spalten;
	echo "<tr>";
	while ($x >= 1) {
		echo "<td colspan='$csp' align='center'>content</td>";
		$x--;
	}
	$spalten = $spalten / 2;
	$csp = $csp * 2;
	echo "</tr>";
}
echo "</table>";
?>
Obs geht ? Ka, ist sicher wieder nen Fehler drin aber probiers mal =)
btw: Nichts da! Das geht eben nicht. - Geht nicht, gibts nicht!

Grüße, Morph
 
Zuletzt bearbeitet:
Ich habe wirklich lange lange überlegt.
Teilweise dachte ich, ich wäre schon nah an der lösung dran, aber dann ist mir doch wieder etwas eingefallen was die ganze logik zerstückelt :)

Mit rowspan habe ich es nicht hinbekommen, und habe mittlerweile keine lust mehr :o

Mit mehreren tabellen dagegen ist das recht einfach -> http://www.planetdave.de/test.php

Aber das script brauche ich dir ja wohl vorerst mal nicht zu geben, da kommste grad noch alleine drauf, die struktur ist ja ganz einfach: die anzahl der zellen verdoppelt sich in jeder spalte.

Wenn du es wirklich gar nicht hinbekommst, gebe ich dir natürlich das script, aber versuchs erstmal selbst

War aber ne coole aufgabe, fuchst mich ein wenig, dass ich es mit rowspans nicht hinbekommen habe, würde mich interessieren wie es andre machen.
 
Zuletzt bearbeitet:
Ja hallo!

Danke erstmal für die Hilfe. Ich selber hab an die Methode mit den 2 tabllen also der tabelle in der Tabelle gar nicht gedacht:)

Also das Script hab ich jetzt auch hinbekommen:
PHP:
<table>
<tr>
<?php

for($i=32; $i >= 2; $i=$i/2)
{
  echo "
     <td>
       <table>";
       $k=$i;
       for($k=1; $k <= $i ; $k++)
	 {
	echo "<tr><td>$i - $k</td></tr>";
	 }
   
   echo "</table></td>";



   
} 
?>
</tr>
</table>

Trotzdem wärs mal interessant, das erste problem zu lösen...also ich komme auch immer mit dem Rowspan durcheinander und wer weiß, vielleicht gibt gar keine Möglichkeit:):D

bis denne und Danke!
felix
 
mhh naja...sagen wir fast immer:)

Aber ich denke, wenn man kein Muster fiden kann, so wie jetzt eben bei dieser Aufgabe, dann kann man das ganze auch in keine Zählschleifen packen.

Und ich sage mal so: HTML tabellen mit colspan und rowspan zu geneierieren, ist für mich ztielich fitzelig, und ich bin mir gar nicht mal so sicher ob man da irgendein Muster finden kann...

Okoko, der Kunde aus "A beautiful mind" würde sicher eins finden, hast recht:)*bg*
 
Zurück