Denkprobem: dynamische Tabelle

hans_schmid

Erfahrenes Mitglied
Hallo,

ich steh seit gestern vor einem Problem, für das ich irgendwie keine Lösung finde...

Ich habe eine Tabelle, die dynamisch nach folgender Logik aufgebaut werden soll:

Wenn ein Datensatz in der DB vorhanden:
Logo | Leer
Leer | Datensatz

Wenn zwei DS vorhanden:
Logo | Leer | Leer | Logo | Leer
Leer | Datensatz | Leer | Leer | Datensatz

Wenn drei DS vorhanden:
Logo | Leer | Leer | Logo | Leer
Leer | Datensatz | Leer | Leer | Datensatz
Logo | Leer
Leer | Datensatz
.
.
.
usw.

Das scheint nicht weiter tragisch und mit verschachtelten Tabellen wäre es das auch nicht.
Allerdings muss ich das ganze allein durch die logisch richtige Anordnung von <td> und <tr> Tags in einer einzigen Tabelle verwirklichen.

Wenn ich es folgendermaßen mache:
PHP:
 while($row = mysql_fetch_array($current_info)){
if($count == 2){
$count = 0;
}
$count = $count + 1;

?>
<table width=75 border=0>
<tr>
<td valign=top width=28><img src=logo.jpg height=18 width=26 anchor=INCELL></td>
<td align=right><img src=siemens.jpg height=5 width=28 align=right anchor=INCELL></td>
</tr>
<tr>
<td></td><td align=right height=7 valing=top><font size=14><? echo $row['cust_first_name']." ".$row['cust_last_name']; ?><br><br></font></td>
</tr>
</table>
<?
}
?>
werden mir die einzelnen Tabellen ja untereinander geschrieben.

Wie schaffe ich es, dass immer zwei Datensätze nebeneinander geschrieben werden.
Also quasi als Quelltext für beispielsweise drei Datensätze dann sowas in der Art rauskommt:
Code:
<table>
<tr>
    <td>Logo</td>
    <td>Leer</td>
    <td>Leer</td>
    <td>Logo</td>
    <td>Leer</td>
</tr>
<tr>
    <td>Leer</td>
    <td>Datensatz</td>
    <td>Leer</td>
    <td>Leer</td>
    <td>Datensatz</td>
</tr>
<tr>
    <td>Logo</td>
    <td>Leer</td>
</tr>
<tr>
    <td>Leer</td>
    <td>Datensatz</td>
</tr>
</table>

Ich wäre für jede Hilfe wirklich sehr dankbar, da ich absolut aufm Schlauch steh und nich ansatzweise weiterkomme!

MfG
Hans
 
Bau dir einfach zwei Funktionalitäten, eine für einen Datensatz in der Zeile und eine für zwei Datensätze. Jetzt durchläufst du einfach das Ergebnisfeld der Datenbankabfrage. Hat ein Datensatz einen Nachfolger, dann nimm beide und übergib sie der zweiten Funktionalität, andernfalls der ersten.
 
Der Ansatz mit dem Counter ist ja schon mal ganz gut, hierzu noch für schreibfaule die kürzere Version:
PHP:
$count++;
Die Tabelle würde ich so aufbauen:
Code:
<table>
<tr>
    <td>Logo<p>Datensatz</p></td>
    <td>Leer<p>Leer</p></td>
    <td>Leer<p>Leer</p></td>
    <td>Logo<p>Datensatz</p></td>
    <td>Leer<p>Leer</p></td>
</tr>
<tr>
    <td>Logo<p>Datensatz</p></td>
    <td>Leer<p>Leer</p></td>
</tr>
</table>
Die <tr> erzeugst Du dann so:
PHP:
($count % 5 == 0) ? print "\n</tr>\n<tr>\n" : "";
 
Zurück