print theme('table' .... Frage
am 05.11.2008 - 12:14 Uhr in
Hallo,
ich habe eine Frage zur Funktion "print theme". Diese finde ich sehr gelungen und würde sie gerne verwenden.
So wie sie konzipiert ist verwende ich sie bisher auch ohne Probleme.
Ich selectiere ganz normal Zeilen aus einer Datenbank und lass sie schön im Template als Tabelle ausgeben.
snip
$sql = "SELECT irgendwas FROM wasanderem ...
$res = db_query($sql);
while ($row = db_fetch_array($res)) {
$rows[] = $row;
}
print theme('table', $header, $rows);
snip
Meine Frage nun, kann man die Variable $rows (bzw $row) anpassen und manuell noch eine oder mehrere Spalten hinzufügen? Oder ein ganz anderer Weg in der print theme Zeile direkt? :)
In meinem Fall wäre das normaler Text, aber es macht aus meiner Sicht keinen Sinn, diesen sich immer wiederholenden Text auch in die Datenbank zu speichern. Damit wäre das Problem zwar auch gelöst, aber die DB würde sich unnötig aufblähen.
Schön wäre es, wenn dies dirkt im Code machbar wäre und keine neue Funktion erstellt werden müsste.
Ich hoffe einfach mal auf Denkanstösse von Euch ;)
Danke schon mal. ;)
- Anmelden oder Registrieren um Kommentare zu schreiben
Ja!
am 05.11.2008 - 12:36 Uhr
Ganz simple Antwort: Ja!
Row ist eine Tabellen-Zeile wie immer Du sie auch füllen magst. Rows sammelt die einzelnen Zeilen ein als Tabellen-Body und Header setzt die entsprechenden Überschriften. Du kannst in die einzelnen Felder alles eintragen, Du kannst sogar mittels Attributen einzelne Felder 2-spaltig schalten. Lies Dir die Dokumentation zu theme_table in der drupal API durch http://api.drupal.org/api/function/theme_table/6
Gruß
Werner
es funktioniert :)
am 05.11.2008 - 14:14 Uhr
super Danke Dir :)
ich hatte es auch schon die ganze Zeit korrekt angesprochen aber beim selektieren der Daten nicht den korrekten Befehl genommen.
Ich war vom array ausgegangen, aber db_fetch_object bringt die gewünschten Ergebnisse.
while ($row = db_fetch_array($res)) {
while ($row = db_fetch_object($res)) {
das komplette codesnippet sieht nun so aus:
$ausgabetest="tjo n Test halt :)"
$sql = "SELECT * FROM irgendwas";
$res = db_query($sql);
while ($row = db_fetch_object($res)) {
// $rows[] = $row; ersetzt durch untere Zeile
$rows[] = array($row->dies, $row->undjenes, $ausgabetest);
}
print theme('table', $header, $rows);