Tabellen ausgeben
tom_h
- php
Hallo zusammen
Stehe momentan etwas auf dem Schlauch und hoffe auf eure Tipps und Tricks.
Aus einer Tabelle lese ich bestimmte Werte aus: A, B, C, D, E, F
Ausgeben tue ich das Ganze in einer Tabelle (HTML):
A |
---|
B |
- |
C |
- |
D |
- |
E |
- |
F |
- |
Geht ja auch am einfachsten. |
Nun möchte ich aber folgende Lösung. |
Nach drei Zellen soll eine neue Zeile geschrieben werden. Also so etwa: |
A |
- |
D |
- |
Aber irgendwie will mir nichts einfallen wie ich das mit PHP lösen kann. Die Daten übrigens lese ich in einer WHILE Schlaufe aus und zeige sie mit $var->spaltenname an.
Hat mir jemand einen kleinen Tipp?
Danke und Gruss
Tom
hi,
Nun möchte ich aber folgende Lösung.
Nach drei Zellen soll eine neue Zeile geschrieben werden. Also so etwa:
A B C D E F - - - Aber irgendwie will mir nichts einfallen wie ich das mit PHP lösen kann. Die Daten übrigens lese ich in einer WHILE Schlaufe aus und zeige sie mit $var->spaltenname an.
Tabelle öffnen, Zeile öffnen, Wert in Tabellenspalte ausgeben.
Wenn drei Stück ausgegeben, Zeile wieder schliessen, wenn weitere Werte kommen, neue Zeile öffnen.
Zum Prüfen, ob ein Vielfaches von x erreicht wurde, eignet sich der Modulo-Operator.
gruß,
wahsaga
Moin tom_h,
Aber irgendwie will mir nichts einfallen wie ich das mit PHP lösen kann. Die Daten übrigens lese ich in einer WHILE Schlaufe aus und zeige sie mit $var->spaltenname an.
Hat mir jemand einen kleinen Tipp?
Baue einen Zähler in die Schleife ein. Wenn dieser 3 erreicht hat
dann schreibe ein </tr> <tr> und setze den Zähler wieder auf 0.
Du musst nur das Ende der Tabelle gesondert behandeln, wenn keine Daten mehr vorhanden sind.
regds
Mike©
Hello,
ich teile solche Aufgaben immer in zwei Funktionen auf.
Funktion Zeile_erzeugen
- Übergabe des Datenarrays als Referenz
- Übergabe der Anzahl Spalten
- Übergabe der CSS-Klassen
(verkürzt für jede Ausgabe das Array)
Funktion Zeile_schreiben
- Übergabe des Datenarrays als Referenz
...
ruft Zeile_erzeugen auf
solange noch Elemente im Array sind
Zeile_schreiben
Hinweis: Zeile_erzeugen muss die Zeile auf Anzahl auffüllen, wenn das Array leer ist.
Andersherum ist es schwerer, wenn man die Darstellung spaltenweise aufbauen muss, weil HTML-tabellen eben zeilenweise aufgebaut sind.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hello,
betrifft Deine Rückfrage per email...
siehe http://forum.de.selfhtml.org/archiv/2007/3/t148943/#m966732
Als Ansatz.
Bei Dir sieht es ja so aus, dass Du das ganze Array mit der Ergebnismenge übergibst, und einfach immer mit der Funktion array_shift()
http://www.php.net/manual/en/function.array-shift.php
ein Element vorne abschneidest.
Die Funktion sieht dann so aus:
function make_trow(&$_data, $spaltenzahl)
{
$out = "":
if (!is_array($_data)) return false; ### wenn kein Datenarray vorhanden, gleich abbrechen
$out .= " <tr>\n";
for ($spalte = 0; $spalte < $spaltenzahl; $spalte++)
{
$out .= " <td class="td01">";
$_zelle = array_shift($_data);
if ($_zelle === NULL)
{
$out .= " ";
}
else
{
$out .= $htmlentities($_zelle,ENT_QUOTES);
}
$out .= "</td>\n";
}
$out .= " <tr>\n";
return $out;
}
Die Hüllfunktion für die Tabelle müsstest Du nun selber hinbekommen.
Die muss dan solange laufen, wie das Array noch mehr als 0 Elemente hat.
http://www.php.net/manual/en/function.count.php
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom