Template - 2 Spaltenausgabe mit PHPLib
Andre
- php
Hallo,
ich entwerfe gerade eine Website (meine erste, die vollständig mit Templates umgesetzt sein wird.) - für eine Seite brauche ich eine DB-Ausgabe über zwei Spalten ... das Problem ist jetzt, dass ich die Datensätze gerne so ausgeben möchte:
|-----------|-------------|
| 1. Daten- | 2. Daten- |
satz | satz |
---|---|
3. Daten- | usw. |
satz | |
----------- | ------------- |
im Idealfall möchte ich das mit _einer_ Datenbankabfrage lösen. Ich habe zwar das Grundprinziep von PHPLib (bzw. die darin enthalten Template-Lösung) verstanden, aber für die Feinheiten fehlt mir leider noch der Überblick. Ich hoffe, ihr könnt mir diesbezüglich ein paar Tipps mit auf meinen Weg geben. :-)
Grüße, Andre
Hallo Andre!
|-----------|-------------|
| 1. Daten- | 2. Daten- |
satz satz 3. Daten- usw. satz ----------- -------------
im Idealfall möchte ich das mit _einer_ Datenbankabfrage lösen.
Nunja, Du mußt Deinen Text auf jeden Fall in mehrere (am besten vielleicht gleich große) Teile aufteilen.
Das kannst Du aber mit PHP machen und den ganzen Text am Stück aus Deiner DB holen und dann "zerteilen".
Nur versteh ich nicht so ganz, ob es das ist, was Du wissen wolltest?
Wie man 2-spaltige Layouts macht steht ja an zig Stellen im Web (Stichwort: Divs <-> Tabellen).
Präzisier doch Deine Frage ein wenig, dann kann ich Dir vielleicht auch besser helfen.
MfG
Götz
Hmm, also ich zeige dir (euch) mal am besten die aktuelle Site, an der ich gerade bastel. http://www.horrorgame.de/index1.php
Da wo jetzt "auf der Startseite" rechts ein Newsbeitrag kommt, will ich für eine Übersichtsseite die Spiele-Titel nach dem folgenden Schema darstellen ...
|-----------|-------------|
| 1. Daten- | 2. Daten- |
| satz | satz |
|-----------|-------------|
| 3. Daten- | usw. |
| satz | |
|-----------|-------------|
der PHP-Teil der Seite für diese (index1.php)Ausgabe ist wie folgt:
/* News - Anfang */
$tpl->set_block("meldungen", "artikel", "artikel_handle" ); // initialisierung der blockanweisung
$db->query( "SELECT * FROM $table ORDER BY datum DESC" ); // abfrage der datensätze
while($db->next_record()): // zuordnen der einzelnen datensatz-blöcke
$tpl->set_var(array(
"news_datum" => $db->f("datum"),
"news_titel" => $db->f("titel"),
"news_text" => $db->f("text"),
"news_autor" => $db->f("autor")
));
$tpl->parse("artikel_handle", "artikel", true);
endwhile;
/* News - Ende */
... dann etwas ähnliches für die Spiele-Titel
Tut mir leid, irgendwie kann ich das (mein) Problem nicht so richtig darstellen, aber vielleicht ahnt ihr ja schon wo mein Problem liegt.
Grüße, Andre
abend,
ich entwerfe gerade eine Website (meine erste, die vollständig mit Templates
umgesetzt sein wird.) -
schön
für eine Seite brauche ich eine DB-Ausgabe über zwei
Spalten ... das Problem ist jetzt, dass ich die Datensätze gerne so ausgeben
möchte:
im Idealfall möchte ich das mit _einer_ Datenbankabfrage lösen.
wenn es im bereich des sql-möglichen ist wird das kein problem sein
Ich habe zwar das Grundprinziep von PHPLib (bzw. die darin enthalten
Template-Lösung) verstanden, aber für die Feinheiten fehlt mir leider
noch der Überblick.
das was du möchtest hat relativ wenig mit dem templatesystem zu tun
Ich hoffe, ihr könnt mir diesbezüglich ein paar Tipps mit auf meinen
Weg geben. :-)
beim templatesystem - um darauf anzusprechen - ist es üblich, die daten,
welche angezeigt werden sollen, vor dem parsen des templates separat
bereitzustellen.
in deinem fall wäre das das resultset, das sich aus einer query ergibt.
somit musst du lediglich das resultset mittels template-eigener methoden
(bei smarty->assign()) an das template übergeben.
im template selbst iterierst du wie üblich durch das resultset und stellst
die einzelnen recordsets dar.
--- -- -
das, woran du scheiterst, ist m.E. eher die darstellung der daten.
unabhängig vom template.
um folgendes konstrukt darzustellen
|-----------|-------------|
| 1. Daten- | 2. Daten- |
satz satz 3. Daten- usw. satz ----------- -------------
bedarf es der benutzung des modulus-operators (%).
siehe dazu: http://de2.php.net/operators.arithmetic
den wendest du dann auf deine fortlaufende zählung an (%2)
und somit ergibt die überprüfung nur bei geraden zahlen true.
mfg,
(tanz das)
Z.N.S.