PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit Spaltenweiser Darstellung



ace23
23-04-2005, 12:25
Hallo Leute,

ich habe ein kleines Problem mit der Spaltenweiser Darstellung.
Läßst sich bischen doof erklären.
Im Prinzip funktioniert es schon problemlos wenn ich beim 3, 5 usw Datensatz bin. Habe ich z.B. nur 2 Datensätze, also bei Satz 2, 4, 6 usw bekomme ich es nicht gebacken das er mir das
$break="</tr><tr>"; das als Begin für die nächste Zeile sein soll weg läßt.

Hier der betreffende Teil:
Tabellen Template:


...
<tr>
<td class="standard" colspan="2">&nbsp;</td>
</tr>
<tr>
$database_row
</tr>
<tr><td colspan="2">&nbsp;</td></tr>
</table>



$query=$DB->query(blabla.. LIMIT ".$start.",".$ppage);
$counter=1;
while ($result=$DB->fetch_assoc($query)) {

if ($counter=="1") {
$break="";
$counter++;
} else {
$break="</tr><tr>";
$counter=1;
}
eval ("\$database_row.=\"".template("content/db_row")."\";");
}


Template db_row:

<td align="center" class="standard">BLABLABLA</td>
$break

Ich komm da irgendwie ned so recht dahinter wie ich das lösen kann.
Vielleicht kann mir von euch ja einer da weiterhelfen.

undefined
23-04-2005, 14:44
Falscher Ansatz, den Zähler kannst du weglassen!
Nehme das was vorhanden ist wenn Datensatz nicht empty dann Zellentemplate.

ace23
23-04-2005, 15:24
sorry aber ????

BlueJay
26-04-2005, 09:09
suchst du so was?
(Quick and dirty und ohne nachzusehen oder Kaffee)




function mach_tabelle($daten)
{
$counter=0;
$zellen_pro_zeile=4;
$raus="<table>";
for ($i=0; $i<count($daten) $i++)
{
if ($counter%$zellen_pro_zeile==0) $raus=$raus."<tr>";
$raus=$raus."<td>".$daten[$i]."</td>";
$counter++;
if (($counter%$zellen_pro_zeile==0) || ($i==(count($daten)-1)) $raus=$raus."</tr>";
}
$raus=$raus."</table>";
return $raus;
}



(wer einen Druckfehler findet, darf ihn behalten)

ace23
26-04-2005, 12:27
HI,

ja sowas suche ich, hab mit Deiner Funktion mal bischen probiert, leider klappt das nicht richtig. Er gibt dann die Datensätze doppelt aus und macht fehler im Quelltext der Tabelle.

Es muss einfach nur so aussehen:

Datensatz 1 Datensatz 2
Datensatz 3 Datensatz 4
..usw

BlueJay
26-04-2005, 12:50
Es muss einfach nur so aussehen:

Datensatz 1 Datensatz 2
Datensatz 3 Datensatz 4
..usw

Dann übergib dieser Funktion das Array mit dem Inhalt "Datensatz 1","Datensatz 2"....

Was hinten rauskommt, ist bereits eine fertige Tabelle, die mit echo sofort an die Öffentlichkeit kann.

An der Ecke, wo ich mit dem <tr> anfange, kannst du dann deine schicken Zwischenüberschriften einbauen.